📜  截断数字 javascript (1)

📅  最后修改于: 2023-12-03 15:25:44.125000             🧑  作者: Mango

截断数字 JavaScript

在 JavaScript 中,有时候我们需要对数字进行截断处理,例如保留小数点后几位或将数值限制在一定范围内。本文将介绍几种常见的数字截断方法。

保留小数点后几位
toFixed()

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()

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()

Math.max()Math.min() 方法可以用来获取多个数值中的最大值和最小值。我们可以利用它们来限制数字的范围。

const num = 50;
const minNum = Math.max(num, 20); // 50
const maxNum = Math.min(num, 80); // 50

若原数字超出了限制范围,结果将为限制范围的边缘值。

Number() 和 isNaN()

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 中对数字进行截断处理的三种常见方法:保留小数点后几位、将数值限制在一定范围内。这些方法可以在实际开发中帮助我们处理数值,提高代码质量和效率。