im使用dojo.currency格式。它的运行方式似乎不稳定,我试图找出自己是否做错了什么:
dojo.currency.format("66.315",{currency:"USD"})
"$66.31"
dojo.currency.format("669.315",{currency:"USD"})
"$669.32"
在上面的例子中,两个价格都会四舍五入到32美分,但由于某种原因,我最终得到了两个不同的金额。
看起来dojo.currency在幕后使用dojo.number.round,而dojo.nnumber.round使用javascript toFixed。其已知具有浮点问题。
使用Math.round(数字*Math.pow(10,places))/Math.pow(10.places)代替