首頁  >  文章  >  web前端  >  調整小數的格式保留小數點後兩位_javascript技巧

調整小數的格式保留小數點後兩位_javascript技巧

WBOY
WBOY原創
2016-05-16 16:48:161507瀏覽

在開發過程中經常遇到要調整小數的格式,例如保留小數點後兩位等等。方法也頗為常見,備忘如下。

第一種,利用math.round

var original=28.453
1) //round "original" to two decimals
var result=Math.round(original* 100)/100; //returns 28.45
2) // round "original" to 1 decimal
var result=Math.round(original*10)/10; //returns 28.5

第二種,js1.5以上可以利用toFixed(x) ,可指定數字截取小數點後x位

3) //round "original" to two decimals
var result=original.toFixed( 2); //returns 28.45

4) // round "original" to 1 decimal
var result=original.toFixed(1); //returns 28.5

以上兩種🎜>以上兩種方法最通用,但卻無法滿足某些特殊要求,例如保留小數點後兩位,如果不滿兩位,不滿兩位則補零。此時就有了第三種方法。

第三種,轉換函數,這段程式碼來自國外一個論壇。

複製程式碼 程式碼如下:

function roundNumber(number,decimals) { decimals = Number(decimals);
if (decimals newString = (Math.round(number)).toString();
newString = (Math.round(number)).toString(); else {
var numString = number.toString();
if (numString.lastIndexOf(".") == -1) {// If there is no decimal point
numString = "."; // give it one at the end
}
var cutoff = numString.lastIndexOf(".") decimals;// The point at which to truncate the number
var d1 = Number(numString.substring( cutoff,cutoff 1));// The value of the last decimal place that we'll end up with
var d2 = Number(numString.substring(cutoff 1,cutoff 2));// The next decimal, after the last one we want
if (d2 >= 5) {// Do we need to round up at all? If not, the string will just be truncated
if (d1 == 9 && cutoff > 0) {// If the last digit is 9, find a new cutoff point
while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {
if (d1 != ".") {
cutoff -= 1;
d1 = Number(numString.substring(cutoff,cutoff 1));
} else {
cutoff -= 1;
}
}
cutoff -= 1;
}
}
}
d1 = 1;
}
if (d1 == 10) {
numString = numString.substring(0, numString.lastIndexOf("."));
var roundedNum = Number(numString) 1;
newString = roundedNum.toString() '.';
} else {
newString = numString.substring(0,cutoff) d1.toString();
}
}
if (newString.lastIndexOf(".") == -1) {// Do this again, to the new string
newString = ".";
}
var decs = (newString.substring(newString.lastIndexOf(".") 1)).length;
for(var i=0;i/ /var newNumber = Number(newString);// make it a number if you like
document.roundform.roundedfield.value = newString; // Output the result to the form field (change for your purposes)
}


5) //round "original" to two decimals
var result=original.toFixed(2); //returns 28.45

6) // round "original " to 1 decimal
var result=original.toFixed(1); //returns 28.5
var original=28.4 var result=original.toFixed(2); //returns 28.
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn