我尝试通过以下方法分离5.6(例如):
private static double[] method(double d)
{
int integerPart = 0;
double fractionPart = 0.0;
integerPart = (int) d;
fractionPart = d - integerPart;
return new double[]{integerPart, fractionPart};
}
但我得到的是:
[0] = 5.0
[1] = 0.5999999999999996
您对在不将数字转换为字符串的情况下执行此操作有什么建议吗?
Use BigDecimal http://download.oracle.com/javase/6/docs/api/java/math/BigDecimal.html进行同样的计算。 (由于其表示形式,使用双精度数会出现精度问题)。
- 构建它与
new BigDecimal(String.valueOf(yourDouble))
(这仍然是通过字符串,但各部分没有通过字符串操作分开)
- use
bd.subtract(new BigDecimal(bd.intValue())
确定分数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)