我运行以下代码,但没想到结果..
public class SampleDemo {
public static void main(String args[]) {
System.out.println(10.00 - 9.10);
}
}
我得到了0.9000000000000004的交货单
为什么会这样呢?
发布于 2011-05-20 17:15:35
这是因为十进制值不能精确地用浮点数或双数表示。
一项建议:在需要精确答案的地方,避免浮动和加倍。使用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
https://stackoverflow.com/questions/6075422
复制相似问题