因此,從閱讀周圍我知道我應該將整數(1078美分)表示爲美元金額(如$ 10.78)。在javascript貨幣字符串中轉換十進制的最佳方式
My apps input is sometimes pretty ugly. Stuff like "$10.78533999". I know I can use parseFloat + Math.round like so:
返回Math.round(100 * parseFloat(dollarsAndCentsString.replace(/ [$,] /克, '')));
但我很擔心舍入誤差。我可以做一些複雜的是這樣的:
Number.prototype.round = function(places){
places = Math.pow(10, places);
return Math.round((this + Number.EPSILON) * places)/100;
}
var shiftDecimal = function(amount){
var amountDecPos = amount.indexOf('.');
var intAmount = amount.substring(0, amount.indexOf('.'));
var remainder = parseFloat(amount.substring(amount.indexOf('.') , amount.length)).round(2).toString().substr(2);
return intAmount + remainder;
}
https://jsfiddle.net/eg0as88b/1/
在那裏我有一個自定義的(我認爲很準確)取整函數,僅在小數運營商,以儘量減少舍入誤差。
這是矯枉過正?它似乎應該有一個更好的方式(特別是性能明智)。謝謝!
你說的是爲了顯示或存儲與計算域的目的?舍入的重要性取決於您的場景。 – Paul