📜  javascript number if .00 truncate - Javascript (1)

📅  最后修改于: 2023-12-03 14:42:25.990000             🧑  作者: Mango

JavaScript Number if .00 truncate

有时候我们需要将 JavaScript 中的数字限制为两位小数并进行截断,本文将介绍几种方法。

方法一:toFixed()

JavaScript 中的 toFixed() 方法可以将数字转换为字符串,且保留指定的小数位数。如果保留的小数位数超过实际的小数位数,则会在末尾补 0。

例子:
let num = 10.345;
let truncatedNum = num.toFixed(2);

console.log(truncatedNum); // Output: "10.34"

需要注意的是 toFixed() 方法返回的是字符串类型,所以需要使用 Number() 或 parseFloat() 方法将其转换为数字类型。

代码片段:
let num = 10.345;
let truncatedNum = Number(num.toFixed(2));
方法二:正则表达式

正则表达式也可以实现对数字的截断,其适用于需要将数字格式化为字符串进行展示的场景。

例子:
let num = 10.345;
let truncatedNum = num.toString().match(/^\d+(?:\.\d{0,2})?/);

console.log(truncatedNum[0]); // Output: "10.34"

需要注意的是正则表达式中的 ^\d+(?:\.\d{0,2})? 表示匹配数字,保留两位小数。这里使用了 ?: 表示非捕获组,使正则表达式的开销更小。

代码片段:
let num = 10.345;
let truncatedNum = num.toString().match(/^\d+(?:\.\d{0,2})?/)[0];
方法三:Math.floor()

Math.floor() 方法可以向下取整,我们可以将数字乘以 100 后再取整,然后除以 100 得到我们需要的数字。

例子:
let num = 10.345;
let truncatedNum = Math.floor(num * 100) / 100;

console.log(truncatedNum); // Output: 10.34
代码片段:
let num = 10.345;
let truncatedNum = Math.floor(num * 100) / 100;
总结

本文介绍了几种实现数字截断的方法,可以根据具体场景选择最适合的方法。需要注意的是截断后的数字类型可能会变化,需要使用 Number() 或 parseFloat() 方法将其转换为数字类型。