diff options
author | shigek <shigek@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-07-23 04:48:56 +0000 |
---|---|---|
committer | shigek <shigek@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-07-23 04:48:56 +0000 |
commit | 94418d93abe0709f9e9ee10d34ca22707d1515ac (patch) | |
tree | 13c8dbd9c3bda343b56b0ff7b1b7056efbf77572 /ext/bigdecimal | |
parent | 28d71526296dc0514030521692b1d149456a5865 (diff) | |
download | ruby-94418d93abe0709f9e9ee10d34ca22707d1515ac.tar.gz ruby-94418d93abe0709f9e9ee10d34ca22707d1515ac.tar.xz ruby-94418d93abe0709f9e9ee10d34ca22707d1515ac.zip |
COMP_MODE_ROUNDUP -> COMP_MODE_ROUND
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/bigdecimal')
-rw-r--r-- | ext/bigdecimal/bigdecimal.c | 13 | ||||
-rw-r--r-- | ext/bigdecimal/bigdecimal_en.html | 4 | ||||
-rw-r--r-- | ext/bigdecimal/bigdecimal_ja.html | 6 |
3 files changed, 15 insertions, 8 deletions
diff --git a/ext/bigdecimal/bigdecimal.c b/ext/bigdecimal/bigdecimal.c index 62078b9e5..5259fed06 100644 --- a/ext/bigdecimal/bigdecimal.c +++ b/ext/bigdecimal/bigdecimal.c @@ -1402,7 +1402,7 @@ Init_bigdecimal(void) /* Computation mode */ rb_define_const(rb_cBigDecimal, "COMP_MODE",INT2FIX(VP_COMP_MODE)); rb_define_const(rb_cBigDecimal, "COMP_MODE_TRUNCATE",INT2FIX(VP_COMP_MODE_TRUNCATE)); - rb_define_const(rb_cBigDecimal, "COMP_MODE_ROUNDUP",INT2FIX(VP_COMP_MODE_ROUNDUP)); + rb_define_const(rb_cBigDecimal, "COMP_MODE_ROUND",INT2FIX(VP_COMP_MODE_ROUNDUP)); rb_define_const(rb_cBigDecimal, "COMP_MODE_CEIL",INT2FIX(VP_COMP_MODE_CEIL)); rb_define_const(rb_cBigDecimal, "COMP_MODE_FLOOR",INT2FIX(VP_COMP_MODE_FLOOR)); rb_define_const(rb_cBigDecimal, "COMP_MODE_EVEN",INT2FIX(VP_COMP_MODE_EVEN)); @@ -3912,8 +3912,15 @@ VpPower(Real *y, Real *x, S_INT n) Real *w2 = NULL; if(VpIsZero(x)) { - if(n<0) n = -n; - VpSetZero(y,(n%2)?VpGetSign(x):(-VpGetSign(x))); + sign = VpGetSign(x); + if(n<0) { + n = -n; + if(sign<0) sign = (n%2)?(-1):(1); + VpSetInf (y,sign); + } else { + if(sign<0) sign = (n%2)?(-1):(1); + VpSetZero(y,sign); + } goto Exit; } if(!VpIsDef(x)) { diff --git a/ext/bigdecimal/bigdecimal_en.html b/ext/bigdecimal/bigdecimal_en.html index ee3420ed5..cfdff51f7 100644 --- a/ext/bigdecimal/bigdecimal_en.html +++ b/ext/bigdecimal/bigdecimal_en.html @@ -161,14 +161,14 @@ f = BigDecimal::mode(BigDecimal::COMP_MODE,flag) where flag must be one of: <TABLE> <TR><TD>COMP_MODE_TRUNCATE</TD><TD>truncate</TD></TR> -<TR><TD>COMP_MODE_ROUNDUP</TD><TD>roundup,default</TD></TR> +<TR><TD>COMP_MODE_ROUND</TD><TD>round,default</TD></TR> <TR><TD>COMP_MODE_CEIL</TD><TD>ceil</TD></TR> <TR><TD>COMP_MODE_FLOOR</TD><TD>floor</TD></TR> <TR><TD>COMP_MODE_EVEN</TD><TD>Banker's rounding</TD></TR> </TABLE> nil is returned if any argument is illegal.<BR> The digit location for rounding operation can not be specified by mode method, -use truncate/roundup/ceil/floor mthods for each instance instead. +use truncate/round/ceil/floor mthods for each instance instead. </BLOCKQUOTE> diff --git a/ext/bigdecimal/bigdecimal_ja.html b/ext/bigdecimal/bigdecimal_ja.html index 3b4d3f3b1..0031f1514 100644 --- a/ext/bigdecimal/bigdecimal_ja.html +++ b/ext/bigdecimal/bigdecimal_ja.html @@ -170,10 +170,10 @@ EXCEPTION_NaNが設定されているという意味です。<BR> f = BigDecimal::mode(BigDecimal::COMP_MODE,flag) </BLOCKQUOTE> の形式で指定します。<BR> -ここで、flag は以下の一つを指定します。 +ここで、flag は以下(括弧内は対応するインスタンスメソッド)の一つを指定します。 <TABLE> <TR><TD>COMP_MODE_TRUNCATE</TD><TD>全て切り捨てます(truncate)。</TD></TR> -<TR><TD>COMP_MODE_ROUNDUP</TD><TD>四捨五入します(roundup、デフォルト)。</TD></TR> +<TR><TD>COMP_MODE_ROUND</TD><TD>四捨五入します(round、デフォルト)。</TD></TR> <TR><TD>COMP_MODE_CEIL</TD><TD>数値の大きい方に繰り上げます(ceil)。</TD></TR> <TR><TD>COMP_MODE_FLOOR</TD><TD>数値の小さい方に繰り下げます(floor)。</TD></TR> <TR><TD>COMP_MODE_EVEN</TD><TD>四捨六入します。5の時は上位1桁が奇数の時のみ繰り上げます(Banker's rounding)。</TD></TR> @@ -181,7 +181,7 @@ f = BigDecimal::mode(BigDecimal::COMP_MODE,flag) 戻り値は指定前の flag の値です。 引数に正しくないものが指定された場合は nil が返ります。<BR> mode メソッドでは丸め操作の位置をユーザが指定することはできません。 -丸め操作と位置を自分で制御したい場合は truncate/roundup/ceil/floor といった +丸め操作と位置を自分で制御したい場合は truncate/round/ceil/floor といった インスタンスメソッドを使用して下さい。 </BLOCKQUOTE> <LI><B>limit([n])</B></LI><BLOCKQUOTE> |