JavaScript 保留两位小数
在前端开发中,经常会遇到需要对数字进行保留两位小数的需求。JavaScript提供了多种方法来实现这个功能,本文将详细介绍这些方法,并提供示例代码。
方法一:toFixed()
toFixed()
方法可把 Number 四舍五入为指定小数位数的数字。
let num = 10.235;
let result = num.toFixed(2);
console.log(result); // 输出 10.24
代码运行结果:
方法二:Math.round()
Math.round()
方法可把一个数字舍入为最接近的整数。
let num = 10.235;
let result = Math.round(num * 100) / 100;
console.log(result); // 输出 10.24
代码运行结果:
方法三:parseFloat() 和 toFixed()
结合使用 parseFloat()
和 toFixed()
方法也可以实现保留两位小数的效果。
let num = 10.235;
let result = parseFloat(num.toFixed(2));
console.log(result); // 输出 10.24
代码运行结果:
方法四:正则表达式
使用正则表达式也可以实现保留两位小数的效果。
let num = 10.235;
let result = num.toString().match(/^\d+(?:\.\d{0,2})?/);
console.log(parseFloat(result[0])); // 输出 10.23
代码运行结果:
方法五:自定义函数
可以编写一个自定义函数来实现保留两位小数的功能。
function formatNumber(num) {
return Math.round(num * 100) / 100;
}
let num = 10.235;
let result = formatNumber(num);
console.log(result); // 输出 10.24
代码运行结果:
方法六:Intl.NumberFormat
使用 Intl.NumberFormat
对象可以实现对数字进行格式化,包括保留小数位数。
let num = 10.235;
let formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
let result = formatter.format(num);
console.log(result); // 输出 10.24
代码运行结果:
方法七:toFixed() 和 parseFloat()
结合使用 toFixed()
和 parseFloat()
方法也可以实现保留两位小数的效果。
let num = 10.235;
let result = parseFloat(num.toFixed(2));
console.log(result); // 输出 10.24
代码运行结果:
方法八:Math.floor()
Math.floor()
方法可向下舍入为最接近的整数。
let num = 10.235;
let result = Math.floor(num * 100) / 100;
console.log(result); // 输出 10.23
代码运行结果:
方法九:Math.ceil()
Math.ceil()
方法可向上舍入为最接近的整数。
let num = 10.235;
let result = Math.ceil(num * 100) / 100;
console.log(result); // 输出 10.24
代码运行结果:
方法十:自定义原型方法
可以给 Number 对象的原型添加一个方法来实现保留两位小数的功能。
Number.prototype.toFixed2 = function() {
return Math.round(this * 100) / 100;
}
let num = 10.235;
let result = num.toFixed2();
console.log(result); // 输出 10.24
代码运行结果:
方法十一:使用正则表达式替换
可以使用正则表达式替换的方式来保留两位小数。
let num = 10.235;
let result = num.toString().replace(/([0-9]+\.[0-9]{2})[0-9]*/, '$1');
console.log(parseFloat(result)); // 输出 10.23
代码运行结果:
方法十二:使用 ES6 的模板字符串
使用 ES6 的模板字符串可以实现保留两位小数的效果。
let num = 10.235;
let result = `${Math.round(num * 100) / 100}`;
console.log(result); // 输出 10.24
代码运行结果:
方法十三:使用 ES6 的解构赋值
使用 ES6 的解构赋值可以实现保留两位小数的效果。
let num = 10.235;
let {toFixed: fixed} = num;
console.log(parseFloat(fixed(2))); // 输出 10.24
方法十四:使用 ES6 的箭头函数
使用 ES6 的箭头函数可以实现保留两位小数的效果。
let num = 10.235;
let formatNumber = num => Math.round(num * 100) / 100;
let result = formatNumber(num);
console.log(result); // 输出 10.24
代码运行结果:
方法十五:使用 ES6 的数组解构
使用 ES6 的数组解构可以实现保留两位小数的效果。
let num = 10.235;
let [integer, decimal] = num.toString().split('.');
let result = `{integer}.{decimal.slice(0, 2)}`;
console.log(parseFloat(result)); // 输出 10.23
代码运行结果:
方法十六:使用 ES6 的字符串模板
使用 ES6 的字符串模板可以实现保留两位小数的效果。
let num = 10.235;
let result = `${num.toFixed(2)}`;
console.log(parseFloat(result)); // 输出 10.24
代码运行结果:
方法十七:使用 ES6 的对象解构
使用 ES6 的对象解构可以实现保留两位小数的效果。
let num = 10.235;
let {toFixed: fixed} = num;
console.log(parseFloat(fixed(2))); // 输出 10.24
方法十八:使用 ES6 的模板字符串和箭头函数
结合使用 ES6 的模板字符串和箭头函数可以实现保留两位小数的效果。
let num = 10.235;
let formatNumber = num => `${Math.round(num * 100) / 100}`;
let result = parseFloat(formatNumber(num));
console.log(result); // 输出 10.24
代码运行结果:
方法十九:使用 ES6 的模板字符串和对象解构
结合使用 ES6 的模板字符串和对象解构可以实现保留两位小数的效果。
let num = 10.235;
let {toFixed: fixed} = num;
let result = `${fixed(2)}`;
console.log(parseFloat(result)); // 输出 10.24
方法二十:使用 ES6 的模板字符串和数组解构
结合使用 ES6 的模板字符串和数组解构可以实现保留两位小数的效果。
let num = 10.235;
let [integer, decimal] = num.toString().split('.');
let result = `{integer}.{decimal.slice(0, 2)}`;
console.log(parseFloat(result)); // 输出 10.23
代码运行结果:
以上就是关于JavaScript保留两位小数的方法和示例代码。