您的位置:

JavaScript保留小数点后两位

一、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保留小数点后两位的方法。可以根据需要选择不同的方法。但需要注意的是,在计算时可能会出现精度误差,应该尽量避免在小数点后面保留过长的位数。