我有一个浮点来表示图像上的缩放系数。
setZoomPercent( currentZoomPercent - 0.1f );
我遇到的麻烦是减量会产生以下结果。我怎么能避免这个?
Zoom:100.0
Zoom:99.9
Zoom:99.8
Zoom:99.700005
Zoom:99.600006
Zoom:99.50001
Zoom:99.40001
Zoom:99.30001
Zoom:99.20001
Zoom:99.10001
Zoom:99.000015
Zoom:98.90002
Zoom:98.80002
P.S:我猜它与二进制的二进制表示形式有关。
答案 0 :(得分:4)
您可以使用BigDecimal
来避免它 BigDecimal d1 = new BigDecimal("100.00");
BigDecimal d2 = new BigDecimal("0.1");
for(int i = 0; i < 100; i++) {
d1 = d1.subtract(d2);
System.out.println(d1);
}
产生
99.90
99.80
99.70
99.60
99.50
99.40
99.30
99.20
...