BigDecimal和float相乘不能得到精确值

来源:互联网 发布:阿里云服务器ftp 编辑:程序博客网 时间:2024/06/06 09:19
float numF = 1.2f;BigDecimal numDecimal = new BigDecimal(100);System.out.println(numDecimal.multiply(new BigDecimal(numF)));

result:

120.0000047683715820312500

原因是

System.out.println(new BigDecimal(numF));

result:

1.2000000476837158203125

改:

float numF = 1.2f;BigDecimal numDecimal = new BigDecimal(100);         String numString = String.valueOf(numF);System.out.println(numDecimal.multiply(new BigDecimal(numString)));

result:

120.0
0 0