在我的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
。
答案 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
只会有一个项目,所以你可以检查长度并做任何你想要处理的情况。