我正在尝试将字符串值转换为BigDecimal,然后执行计算,但现在的输出与预期的一样。请在下面找到代码:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Test {
public static void main(String[] args) {
BigDecimal b1 = new BigDecimal("320000");
BigDecimal b2 = new BigDecimal(0.1);
BigDecimal b3 = new BigDecimal("9.6");
BigDecimal b5 = new BigDecimal(320000);
BigDecimal b6 = new BigDecimal(9.6);
BigDecimal b4 = (
b1.multiply(b2)
).multiply(
b3.divide(b1, RoundingMode.HALF_UP)
);
System.out.println(b4.setScale(4, RoundingMode.HALF_UP));
BigDecimal b7 = (
b5.multiply(b2)
).multiply(
b6.divide(b5, RoundingMode.HALF_UP)
);
System.out.println(b7.setScale(4, RoundingMode.HALF_UP));
}
}
两个实例的输出如下所示:
0.0000
0.9600
当我在第二个实例中将数字实例化为BigDecimal而不是从字符串中转换时,我得到了所需的输出。
你能告诉我为什么会发生这种情况吗?我如何在第一个例子中获得0.9600的期望输出。