Java:如何获得十进制中的精度部分?

时间:2012-01-17 06:42:00

标签: java

  

可能重复:
  Java : how do I get the part after the decimal point?

在我的previous post中,我没有给出正确的解释。这是我的确切情况。

我有一个double变量d = 1.15

我想要小数点后的数字,即“15”。

在Java中实现这一目标的最佳方法是什么?

我试过这样的话:

Double d = 1.15;
String str = d.toString();
int len = str.substring(str.indexOf(".")).length() - 1;
int i= (int) (d * (long)Math.pow(10,len) % (long)Math.pow(10,len));

但我没有得到正确的答案,因为当我转换d.toString()时答案是14.999999999999986

2 个答案:

答案 0 :(得分:0)

代替d.toString(),试试这个:

String str = String.format("%.2f", d);

答案 1 :(得分:0)

Double x = 1.2345;
Double p = x - Math.floor(x);
String[] sp = p.toString().split("\\.");

sp[1]变量现在将包含字符串2345,只要实际上有一个小数部分即可。如果没有,sp只会有一个项目,所以你可以检查长度并做任何你想要处理的情况。