我嘗試了很多東西,但我仍然有一個問題, 例如:4.3725 * 350 = 1530.38,但我的結果是1530.37;/JavaScript的圓誤差ToFixed,NumberPrototypeRound
我嘗試這樣做:
Number.prototype.round = function(places) {
return +(Math.round(this + "e+" + places) + "e-" + places);
}
和toFixed。
我嘗試了很多東西,但我仍然有一個問題, 例如:4.3725 * 350 = 1530.38,但我的結果是1530.37;/JavaScript的圓誤差ToFixed,NumberPrototypeRound
我嘗試這樣做:
Number.prototype.round = function(places) {
return +(Math.round(this + "e+" + places) + "e-" + places);
}
和toFixed。
你可以使用toPrecision()。這將返回一個字符串,您可以將其轉換回數字。
的問題已得到解決toFixed()輪號碼那樣:3.65.toFixed(1)=> 3.6
Math.round():https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
這裏的示例:
function roundTo(number, digits) {
var roundHelp = Math.pow(10, digits); // needed to round to correct number of decimals
number = Number(number.toPrecision(15));
return Math.round(number * roundHelp)/roundHelp;
// if you want the exact number of digits use this return statement:
// return (Math.round(number * roundHelp)/roundHelp).toFixed(digits);
}
var x = roundTo(4.3725 * 350, 2); // x = 1530.38
var y = roundTo(4.2970 * 535, 2); // y = 2298.9
不要從不使用字符串連接用於算術。這不適用於所有數字。 – Bergi