java float变量的乘法

时间:2015-10-22 17:43:07

标签: java

我有一段代码如下。

String wtf = "8.40";
float ft = Float.parseFloat(wtf); //8.4
ft *= 100.0F;

" ft"的价值以上是839.99994

我预计输出为840.00000 如何更正我的代码,以便它为我提供840.00000作为输出

2 个答案:

答案 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"));