toFixed遇到了奇怪的有关问题

toFixed遇到了奇怪的问题
今天客户打电话来说网页上有个地方计算不四舍五入了……

结果调试发现,4.25*13531.3=57508.025 ,.toFixed(2)结果竟然是57508.02
4.25*13531.42=57508.535 结果又是57508.54

……toFixed遇到了奇怪的有关问题

这尼玛是玩我么……
------解决思路----------------------
0.00 : 0
0.00 : 0.005
0.01 : 0.01
0.02 : 0.015
0.02 : 0.02
0.03 : 0.025
0.03 : 0.030000000000000002
0.04 : 0.035
0.04 : 0.04
0.05 : 0.045
0.05 : 0.049999999999999996
0.05 : 0.05499999999999999
0.06 : 0.05999999999999999
0.06 : 0.06499999999999999
0.07 : 0.06999999999999999
0.08 : 0.075
0.08 : 0.08
0.09 : 0.085
0.09 : 0.09000000000000001
0.10 : 0.09500000000000001

不过是个计算精度问题
------解决思路----------------------
你的意思是原生的toFixed有问题?
如果真有的话,可能是因为二进制计算的问题,也就是说的计算结果可能是如下
4.25*13531.3=57508.0249999999...
------解决思路----------------------
原生的toFixed是沒有問題的
引用:
今天客户打电话来说网页上有个地方计算不四舍五入了……

结果调试发现,4.25*13531.3=57508.025 ,.toFixed(2)结果竟然是57508.02
4.25*13531.42=57508.535 结果又是57508.54

……toFixed遇到了奇怪的有关问题

这尼玛是玩我么……


用js來計算 
4.25*13531.3 = 57508.024999999994  .toFixed(2) 結果 57508.02
4.25*13531.42 = 57508.535 .toFixed(2) 結果57508.54
以toFixed的結果來說結果是正確的..
沒辦法…js的計算本身就是不精確的
toFixed遇到了奇怪的有关问题

------解决思路----------------------
咦…等等

不四舍五入了

可是js 的 toFixed 本是是四捨五入的函數說…重寫個吧
function toFixed(n) {
    return /\d+(\.\d{0,2})?/.exec(this.toString())[0] - 0;
}
Number.prototype.toFixed = toFixed;