保留两位小数
- 四舍五入:
var num =2.446242342;
num = num.toFixed(2); // 输出结果为 2.45
- 不四舍五入:
- 先把小数变整数,再转化
Math.floor(15.7784514000 * 100) / 100 // 输出结果为 15.77
- 当作字符串,使用正则匹配
Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))
// 输出结果为 15.77,不能用于整数如 10 必须写为10.0000
数值取舍
- 保留整数
parseInt(5/2)//2
- 向上取整,有小数,整数就加1
Math.ceil(5/2)//3
- 四舍五入
Math.round(5/2)//3
Math.round(5/3)//2
- 向下取整
Math.floor(5/2)//2
如果没有明确规定一定要保留两位的,那就一般都不会有太大问题的l了,那么问题来了,对于要强制保留两位的,我们又该怎么办呢?特别是那种末尾还是0的,这不是又头大了?不要担心,上有政策,下有对策嘛
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;
}
网友评论