The 1996 edition of the Java Language Spec calls out 5e-324 as java.lang.Double.MIN_VALUE, but the 1997 Java 1.0.2 VM spec calls out 4.94065645841246544e-324 as the minimum value for the JVM Double type. So one can see how this sort of discrepancy could have crept in. The problem arises from the bad habit of expressing these values as decimal numbers, rather than as binary mantissa/exponent pairs. With a 53 bit mantissa and an 11 bit exponent, one has a minimum binary value which can be expressed in decimal as as something like 4.9406564584124654e-324, but that's so tedious (and error-prone) to type that one frequently sees it abbreviated and truncated to "4.94e-324" or "5e-324". But those truncated values should not be used in implementation! The Second Edition (Java 2) JVM spec abandons the questionable use of decimal floating point notation, and describes everything in terms of mantissa and exponent precision. I don't have the revised Java Language Specification handy to see of they fixed it. In any case, I believe that kaffe should be using the value that corresponds to the true minimum denormalized IEEE double.
Regards, Kevin K. ----- Original Message ----- From: "Ito Kazumitsu" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, October 09, 2002 1:10 PM Subject: [kaffe] MIN_VALUE of java.lang.Double > Kaffe's MIN_VALUE of java.lang.Double is > > 4.9406564584124654418e-324 > > but can't this be changed to 5e-324? This is the > MIN_VALUE of GNU Classpath's java.lang.Double. > > My machine's poor strtod converts 4.9406564584124654418e-324 to > zero, so make failes while compiling java/lang/Double.c. > My machine's poor strtod seems to recognize 5e-324 as a non-zero > value. > > _______________________________________________ > kaffe mailing list > [EMAIL PROTECTED] > http://kaffe.org/cgi-bin/mailman/listinfo/kaffe > _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe