可能重复:
Strange floating-point behaviour in a Java program
Why does JSP/JSTL division by 1000 sometimes give remainder?
我正在尝试获取小数点后的数字。
例如:60.
4 - > 0.4
然而,什么时候做
double a = 60.4 % 1;
它出现了0.3999999999999986
。
这是为什么?怎么能修好呢?
答案 0 :(得分:4)
使用定点类型
BigDecimal src = new BigDecimal("60.4");
BigDecimal a = src.remainder(BigDecimal.ONE);
答案 1 :(得分:1)
您可以使用DecimalFormat 执行所需的任务。
答案 2 :(得分:0)
好的,您可以这样做:How to get the numbers after the decimal point? (java)
我认为这正是您所寻找的。基本上你可以使用:
double x = d - Math.floor(d);
OR
BigDecimal类用于小数点后的确切数字。