【发布时间】:2013-12-15 10:52:27
【问题描述】:
我有谷歌关于如何在 java 中获取浮点数的 2 位小数。以下是我的代码。最后在这里float totalWeight = 0.1*levinWeight+0.8*lsmWeight; 我得到了可能精度损失的错误?我想首先将字符串转换为浮点数,然后将其保留为小数点后 2 位。
float levinWeight = Float.parseFloat(dataOnlyCombine[2]);
float lsmWeight = Float.parseFloat(dataOnlyCombine[3]);
DecimalFormat df = new DecimalFormat("#.##");
levinWeight = Float.valueOf(df.format(levinWeight));
lsmWeight = Float.valueOf(df.format(lsmWeight));
float totalWeight = 0.1*levinWeight+0.8*lsmWeight;
【问题讨论】:
-
不要使用浮点数。曾经。除非你有很多并且你知道它们可以以令人满意的精度表示你拥有的数字。由于您显然不知道这一点,因此这是使用 double 的一个很好的理由。
标签: java decimal floating-point-precision