Subject: Re: BigDecimal bug?


> Can anyone tell me if this is a bug? It certainly seems like it to me.
> BigDecimal.new("-.31").to_s
> => "0.31"
Yes,could you apply the patch bellow:
---------------------------------------------------------------------------------
$ ruby/ruby-1.8.6/ext/bigdecimal
$ diff -up bigdecimal.c.old bigdecimal.c
--- bigdecimal.c.old    2007-03-14 10:21:30.015625000 +0900
+++ bigdecimal.c        2007-03-14 12:26:18.625000000 +0900
@@ -3921,7 +3921,7 @@ VpCtoV(Real *a, const char *int_chr, U_L
     /* get integer part */
     i = 0;
     sign = 1;
-    if(ni > 0) {
+    if(ni >= 0) {
         if(int_chr[0] == '-') {
             sign = -1;
             ++i;
---------------------------------------------------------------------------------

Matz, could you please apply the patch and commit the source
with the change log ?
Somewhat like:
Wed Mar 14 12:30:00 2007  Shigeo Kobayashi  <shigeo / tinyforest.jp>

 * ext/bigdecimal/bigdecimal.c: BigDecimal("-.31") is now
   treated as ("-0.31") not as ("0.31").

Thank you in advance.

Shigeo Kobayashi
shigeo / tinyforest.jp