* java/math/BigDecimal.java (BigDecimal(String)): Always set scale to
zero when there is an exponent and the significant is zero.
(divide): Always set scale to newScale even in special ZERO case.
From-SVN: r62908
+2003-02-14 Mark Wielaard <mark@klomp.org>
+
+ * java/math/BigDecimal.java (BigDecimal(String)): Always set scale to
+ zero when there is an exponent and the significant is zero.
+ (divide): Always set scale to newScale even in special ZERO case.
+
2003-02-14 Tom Tromey <tromey@redhat.com>
* java/lang/System.java (properties): Use Properties.clone.
{
int exp = Integer.parseInt (num.substring (point));
exp -= scale;
- if (exp > 0)
+ if (signum () == 0)
+ scale = 0;
+ else if (exp > 0)
{
intVal = intVal.multiply (BigInteger.valueOf (10).pow (exp));
scale = 0;
throw new ArithmeticException ("scale is negative: " + newScale);
if (intVal.signum () == 0) // handle special case of 0.0/0.0
- return ZERO;
+ return newScale == 0 ? ZERO : new BigDecimal (ZERO.intVal, newScale);
// Ensure that pow gets a non-negative value.
int valScale = val.scale;