📅  最后修改于: 2023-12-03 15:25:44.125000             🧑  作者: Mango
在 JavaScript 中,有时候我们需要对数字进行截断处理,例如保留小数点后几位或将数值限制在一定范围内。本文将介绍几种常见的数字截断方法。
toFixed()
方法可以将数字转换为指定位数的小数字符串。它返回一个字符串类型的值,可以通过 parseFloat()
或 Number()
转换为数字类型。
const num = 1234.56789;
const fixedNum = num.toFixed(2); // "1234.57"
const floatNum = parseFloat(fixedNum); // 1234.57
如果原数字的小数位数不足,toFixed()
方法会用零进行填充。
const num = 1234;
const fixedNum = num.toFixed(2); // "1234.00"
Math.round()
方法可以对数字按照指定位数四舍五入。要保留小数点后几位,我们需要将数字乘以 10 的相应次幂,再将结果除以 10 的相应次幂。
const num = 1234.56789;
const power = 100; // 10^2
const roundedNum = Math.round(num * power) / power; // 1234.57
这种方法的缺点在于,若小数点后面的数值较小时,四舍五入的结果可能不准确。
Math.max()
和 Math.min()
方法可以用来获取多个数值中的最大值和最小值。我们可以利用它们来限制数字的范围。
const num = 50;
const minNum = Math.max(num, 20); // 50
const maxNum = Math.min(num, 80); // 50
若原数字超出了限制范围,结果将为限制范围的边缘值。
Number()
方法可以将字符串转换为数字类型。如果转换失败,则返回 NaN
。
const str = "1234";
const num = Number(str); // 1234
const nan = Number("abc"); // NaN
我们可以利用 Number()
和 isNaN()
方法将数字限制在一定范围内。
const num = 80;
const min = 20;
const max = 50;
const limitedNum = isNaN(num) ? min : Math.max(min, Math.min(num, max)); // 50
其中,Math.max(min, Math.min(num, max))
表示将数字限制在 [min, max]
范围内,isNaN(num) ? min : ...
表示如果数字转换失败,则将其限制为最小值 min
。
本文介绍了 JavaScript 中对数字进行截断处理的三种常见方法:保留小数点后几位、将数值限制在一定范围内。这些方法可以在实际开发中帮助我们处理数值,提高代码质量和效率。