java解决double精度损失问题BigDecimal--取余

1.问题

System.out.println("10.2%2 = " + 10.2%2 );
结果为:10.2%2 = 0.1999999999999993

我的0.2怎么不够了??路上被收网费了?

double精度损失。

2.BigDecimal能解决

2.1 学习BigDecimal

java解决double精度损失问题BigDecimal--取余_第1张图片

2.2 上手解决问题

BigDecimal bigDecimal = new BigDecimal(Double.toString(10.2));
BigDecimal[] bigDecimals = bigDecimal.divideAndRemainder(BigDecimal.valueOf(2));
System.out.println("10.2%2 = " + bigDecimals[1] );
//结果为 :10.2%2 = 0.2

divideAndRemainder() 方法的参数即为除数,返回一个BigDecimal数组,返回的数组中包含两个元素,第一个元素为商,第二个元素为余数。

你可能感兴趣的:(java,java)