js实现number
实现数字格式化功能
在JavaScript中,数字格式化可以通过多种方式实现,包括内置方法和自定义函数。以下是几种常见的数字格式化方法:
使用toLocaleString()方法
const number = 1234567.89;
const formatted = number.toLocaleString('en-US');
// 输出: "1,234,567.89"
该方法会根据指定的语言环境自动添加千位分隔符和小数点。
固定小数位数
const num = 123.456;
const fixed = num.toFixed(2);
// 输出: "123.46"
toFixed()方法会将数字四舍五入到指定的小数位数,返回字符串形式。
自定义千位分隔符函数
function formatNumber(num) {
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
console.log(formatNumber(1000000)); // 输出: "1,000,000"
数字类型转换
将其他类型转换为数字可以使用以下方法:

parseInt()和parseFloat()
const str = "123.45";
const intNum = parseInt(str); // 123
const floatNum = parseFloat(str); // 123.45
Number()构造函数
const str = "123";
const num = Number(str); // 123
一元加运算符
const str = "123";
const num = +str; // 123
数字验证方法
检查是否为有效数字

function isNumeric(value) {
return !isNaN(parseFloat(value)) && isFinite(value);
}
console.log(isNumeric("123")); // true
console.log(isNumeric("abc")); // false
使用Number.isFinite()
console.log(Number.isFinite(123)); // true
console.log(Number.isFinite(Infinity)); // false
数字范围限制
限制数字在最小最大值之间
function clamp(num, min, max) {
return Math.min(Math.max(num, min), max);
}
console.log(clamp(15, 0, 10)); // 10
生成随机数
function randomInRange(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(randomInRange(1, 10));
数学计算扩展
精度计算(解决浮点数问题)
function add(num1, num2) {
const factor = Math.pow(10, Math.max(getDecimalLength(num1), getDecimalLength(num2)));
return (num1 * factor + num2 * factor) / factor;
}
function getDecimalLength(num) {
const decimal = num.toString().split('.')[1];
return decimal ? decimal.length : 0;
}
数字进制转换
const num = 255;
console.log(num.toString(16)); // "ff" - 转换为16进制
console.log(num.toString(2)); // "11111111" - 转换为2进制






