我运行以下代码,但没想到结果..
public class SampleDemo {
public static void main(String args[]) {
System.out.println(10.00 - 9.10);
}
}
我的o / p为 0.9000000000000004
为什么会这样?
答案 0 :(得分:6)
这是因为十进制值不能用float或double精确表示。
一个建议:避免浮动和双重需要确切答案。请改用BigDecimal,int或long
使用int:
public class SampleDemo {
public static void main(String args[]) {
System.out.println(10 - 9);
}
}
// Output : 1
使用BigDecimal:
import java.math.BigDecimal;
public class SampleDemo {
public static void main(String args[]) {
System.out.println(new BigDecimal("10.00").subtract(new BigDecimal("9.10")));
}
}
// Output : 0.90