-1

可能重复:
Java 程序中奇怪的浮点行为
为什么 JSP/JSTL 除以 1000 有时会产生余数?

我正在尝试获取小数点后的数字。例如:60.4 ->0.4

然而,什么时候做

double a = 60.4 % 1;

结果是0.3999999999999986

为什么是这样?它怎么能被修复?

4

3 回答 3

4

使用定点类型

BigDecimal src = new BigDecimal("60.4");
BigDecimal a = src.remainder(BigDecimal.ONE);
于 2012-05-21T09:13:52.320 回答
1

您可以使用DecimalFormat来完成您想要的任务。

于 2012-05-21T09:18:48.347 回答
0

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

我认为这正是您正在寻找的。所以基本上你可以使用:

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

或者

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

于 2012-05-21T09:17:54.440 回答