关于浮点:在十进制Java之后获取数字

Getting numbers after decimal Java

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Strange floating-point behaviour in a Java program
Why does JSP/JSTL division by 1000 sometimes give remainder?

我想知道小数点后的数字。例:60.4->0.4

但是,什么时候呢

1
double a = 60.4 % 1;

原来是0.3999999999999986

这是为什么?怎么能修好呢?


使用定点类型

1
2
BigDecimal src = new BigDecimal("60.4");
BigDecimal a = src.remainder(BigDecimal.ONE);

你可以使用decimalformat来完成你想要的任务。


好的,你可以这样做:如何得到小数点后的数字?(爪哇)

我想这正是你要找的。所以本质上你可以使用:

1
double x = d - Math.floor(d);

BigDecimal类,用于小数后的精确数字。