Name: nt126004 Date: 09/27/2001
java version "1.4.0-beta2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta2-b77)
Java HotSpot(TM) Client VM (build 1.4.0-beta2-b77, mixed mode)
java.math.BigDecimal using ROUND_HALF_UP does not behave as expected
i.e
import java.math.*;
public class BigTest {
public static void main(String[] args) {
BigDecimal bd = new BigDecimal(0.115);
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("? 0.12 = " + bd);
bd = new BigDecimal(1.115);
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("? 1.12 = " + bd);
bd = new BigDecimal(2.115);
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("? 2.12 = " + bd);
}
}
output:
? 0.12 = 0.12
? 1.12 = 1.11
? 2.12 = 2.12
should be:
? 0.12 = 0.12
? 1.12 = 1.12
? 2.12 = 2.12
(Review ID: 132704)
======================================================================