public class Change{
public static void main(String[] args){
System.out.println(2.00 - 1.10);
}
}
Solution:
结果显示是:
0.8999999999999999999999999999 由于1.1不能用double来准确表示,而是用了一个接近的数来表示。TID: not all decimals can be represnted exaclty using binary floating-point; Binary floating-point is particularly ill-suited to calculations. Always use the BigDecimal(String) constructor, newver BigDecimal(double). avoid float and double where exact answers are required; for monetary calculations, use int, long, or BigDecimal.Correctly:import java.math.BigDecimal;public class Change{ public static void main(String[] args){ System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10"))); }}
转载请注明原文地址: https://ibbs.8miu.com/read-31686.html