我能做些什么来对付浮点符号错误?

这个问题在这里已经有了答案:

  • 为什么浮点数不准确? 3个答案
  • 为什么不使用Double或Float来表示货币? 14个答案

  • 您可以使用double来获得更高的精度(如果您希望使用非常大的数字,则可以使用BigDecimal )。

    String aa = "1000009.00";
    double bb = Double.parseDouble(aa);
    bb=Math.round(bb*100);
    System.out.printf("%.2f", bb); // it prints only two digits after the decimal point
    

    产量

    100000900.00
    

    您可以使用BigDecimal::multiply例如:

    String aa = "1000009.00";
    aa = aa.replaceAll(",", ".");
    BigDecimal fullValue = new BigDecimal(aa);
    
    System.out.println("full value  = " + fullValue.multiply(new BigDecimal(100)));
    

    产量

    full value  = 100000900.00
    
    链接地址: http://www.djcxy.com/p/85823.html

    上一篇: What can I do against floating point notations Errors?

    下一篇: Calculating very exact numbers