js将数字转换成千分制有的是整数有的是小数
时间: 2023-09-06 08:14:38 浏览: 189
您可以使用 JavaScript 的正则表达式和 replace() 方法来实现数字千分制格式化。具体实现方法如下:
```javascript
function formatNumber(num) {
if (num === null || num === undefined) {
return '';
}
// 判断是否为数字类型
if (typeof num !== 'number') {
num = parseFloat(num);
}
// 判断是否为整数
if (Number.isInteger(num)) {
// 将整数转换为千分制格式
return num.toString().replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,');
} else {
// 将小数四舍五入并保留两位小数
num = num.toFixed(2);
// 分离整数部分和小数部分
let [integer, decimal] = num.split('.');
// 将整数部分转换为千分制格式
integer = integer.replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,');
// 拼接整数部分和小数部分
return integer + '.' + decimal;
}
}
```
在上述代码中,首先判断数字类型是否为整数。如果是整数,则将其转换为千分制格式;如果是小数,则将其四舍五入并保留两位小数,然后将整数部分转换为千分制格式,最后拼接整数部分和小数部分,并返回格式化后的数字字符串。
示例代码如下:
```javascript
console.log(formatNumber(1234)); // 输出:1,234
console.log(formatNumber(1234567)); // 输出:1,234,567
console.log(formatNumber(1234.56)); // 输出:1,234.56
console.log(formatNumber(1234567.89)); // 输出:1,234,567.89
console.log(formatNumber('1234')); // 输出:1,234
console.log(formatNumber('1234.56')); // 输出:1,234.56
console.log(formatNumber(null)); // 输出:''
```
在上述示例代码中,分别对不同数字进行了千分制格式化,并输出格式化后的结果。
阅读全文