保留兩位小數(shù)
- 四舍五入:
var num =2.446242342;
num = num.toFixed(2); // 輸出結(jié)果為 2.45
- 不四舍五入:
- 先把小數(shù)變整數(shù)亏拉,再轉(zhuǎn)化
Math.floor(15.7784514000 * 100) / 100 // 輸出結(jié)果為 15.77
- 當(dāng)作字符串,使用正則匹配
Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))
// 輸出結(jié)果為 15.77,不能用于整數(shù)如 10 必須寫為10.0000
數(shù)值取舍
- 保留整數(shù)
parseInt(5/2)//2
- 向上取整逆巍,有小數(shù)及塘,整數(shù)就加1
Math.ceil(5/2)//3
- 四舍五入
Math.round(5/2)//3
Math.round(5/3)//2
- 向下取整
Math.floor(5/2)//2
如果沒有明確規(guī)定一定要保留兩位的,那就一般都不會有太大問題的l了锐极,那么問題來了笙僚,對于要強制保留兩位的,我們又該怎么辦呢灵再?特別是那種末尾還是0的肋层,這不是又頭大了?不要擔(dān)心,上有政策翎迁,下有對策嘛
function keepTwoDecimalFloat(x) {
var floatX = parseFloat(x);
if (isNaN(floatX)) {
return false;
}
var floatX = Math.round(x * 100) / 100;
var strX = floatX.toString();
var posDecimal = strX.indexOf('.');
if (posDecimal < 0) {
posDecimal = strX.length;
strX += '.';
}
while (strX.length <= posDecimal + 2) {
strX += '0';
}
return strX;
}