在十进制Java之后获取数字

时间:2012-05-21 09:10:05

标签: java floating-point

  

可能重复:
  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

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

3 个答案:

答案 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类用于小数点后的确切数字。