我有一段代码如下。
String wtf = "8.40";
float ft = Float.parseFloat(wtf); //8.4
ft *= 100.0F;
" ft"的价值以上是839.99994
我预计输出为840.00000 如何更正我的代码,以便它为我提供840.00000作为输出
答案 0 :(得分:0)
使用Double.valueOf(wtf)
代替Float.parseFloat(wtf)
答案 1 :(得分:0)
String wtf = "8.40";
double ft = Double.parseDouble(wtf); //8.4
ft *= 100.0F;
使用float时会有很多舍入。这就是为什么你得到这个“意想不到”的价值。我使用parseDouble因为成本较低。
我建议使用BigDecimal进行算术和计算。
BigDecimal BDa = new BigDecimal("8.40");
BigDecimal BDc = BDa.multiply(new BigDecimal("100.0"));