我有谷歌關於如何在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