我有谷歌关于如何在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的一个很好的理由。 – Ingo