一、toFixed()方法
JavaScript中toFixed()方法可以将数字保留指定位数的小数,该方法的参数为要保留的小数位数,返回的是字符串类型。例如:
let num = 3.1415926; num = num.toFixed(2); console.log(num); //"3.14"
需要注意的是,如果保留位数小于原数字的小数位数,会进行四舍五入;如果保留位数大于原数字的小数位数,会在后面补0。例如:
let num = 3.12; num = num.toFixed(5); console.log(num); //"3.12000"
另外,toFixed()方法也可以解决JavaScript精度问题,因为数字在JavaScript中采用64位双精度浮点数来表示,所以在进行小数运算时可能会出现精度误差。使用toFixed()方法可以解决这个问题。例如:
let num1 = 0.1; let num2 = 0.2; let result = num1 + num2; console.log(result); //0.30000000000000004 result = result.toFixed(2); console.log(result); //"0.30"
二、Math.round()方法
Math.round()是JavaScript中的一个内置方法,可以将数字四舍五入为最接近的整数。可以通过将数值乘以相应的倍数,再除以相同的倍数来保留小数点后指定位数。例如:
let num = 3.1415926; num = Math.round(num * 100) / 100; console.log(num); //"3.14"
需要注意的是,如果保留位数大于原数字的小数位数,会在后面补0。如果要保留的位数为0,可以直接使用Math.round()方法。例如:
let num = 3.14; num = Math.round(num); console.log(num); //3
三、parseFloat()方法
parseFloat()是JavaScript中的一个内置方法,可以将字符串解析为浮点数。可以通过toFixed()来保留小数点后指定位数。例如:
let num = parseFloat("3.1415926"); num = num.toFixed(2); console.log(num); //"3.14"
需要注意的是,如果解析的字符串不是一个有效的浮点数,会返回NaN。例如:
let num = parseFloat("hello"); console.log(num); //NaN
四、正则表达式
还可以使用正则表达式来保留小数点后指定位数。例如:
let num = 3.1415926; num = num.toString(); if (num.indexOf(".") !== -1) { num = num.substring(0, num.indexOf(".") + 3); } console.log(num); //"3.14"
首先将数字转换成字符串,然后查找小数点的位置,截取小数点前面和两位小数点后面的字符串即可。
五、toLocaleString()方法
toLocaleString()方法可以将数字转换为字符串,并根据指定的区域设置,格式化为对应的本地数字。可以通过设置数字的小数位数和使用toFixed()方法来保留小数点后指定位数。例如:
let num = 3.1415926; num = num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); console.log(num); //"3.14"
需要注意的是,toLocaleString()方法的第一个参数为区域设置,可以传入undefined或具体的语言代码(如"en-US")。第二个参数为一个选项对象,可以设置数字的小数位数和千位分隔符等内容。
六、总结
以上就是JavaScript保留小数点后两位的方法。可以根据需要选择不同的方法。但需要注意的是,在计算时可能会出现精度误差,应该尽量避免在小数点后面保留过长的位数。