參考這個轉換程式
http://www.binaryconvert.com/convert_float.html?decimal=048046048056057056053
0.08985
用float 會變成8.9850001037120819091796875E-2
用double會變成8.98499999999999993116617247324E-2
一個會進位,一個不會
0.00001
用float 會變成9.99999974737875163555145263672E-6
用double會變成1.00000000000000008180305391403E-5
此題最小的非零正獲利率為1/100000 = 0.00001 = 0.001%
小數點後要取兩位,又要四捨五入
因此遇到0.005% 0.015% 0.025%等數值時
可能會遇到浮點數會比該數值大一點或小一點的狀況
解決方法是加上 0.0001%
由於獲利率是以0.001%為基本單位增加
加上0.0001%並不會影響正確數值的四捨五入(到小數點第二位)
但可以把所有的浮點數誤差都變成偏向增加