js格式化金额 - 数字千分化
方法1
/** * 格式化金额 - 数字千分化,保留两位小数 * @param {number | string} num - 输入的数字或字符串 * @returns {string} - 格式化后的金额字符串,空值时返回 '0.00' */ export function numToMoney(num) { // 检查输入是否为空或无效数字 if (num === null || num === undefined || num === '' || isNaN(Number(num))) { return '0.00'; // 空值或非法数字返回 0.00 } // 转换为数字类型并处理精度问题 let value = Math.round(Number(num) * 100) / 100; // 先放大100倍取整,避免浮点数精度问题 let [integerPart, decimalPart] = value.toString().split('.'); // 分割整数和小数部分 // 如果小数部分不存在,补全为两位 decimalPart = decimalPart ? decimalPart.padEnd(2, '0') : '00'; // 对整数部分进行千分位格式化 const formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ','); // 合并结果并返回 return `${formattedInteger}.${decimalPart}`; }
方法2
/** * 格式化金额 - 数字千分化 * @param {number | string} num - 输入的数字或字符串 * @returns {string} - 格式化后的金额字符串,空值时返回 '-' */ export function numToMoney(num) { // 检查输入是否为空 if (num === null || num === undefined || num === '') { return '-'; } // 将输入的数字转换为字符串 const str = num.toString(); // 分离整数部分和小数部分 const [integerPart, decimalPart] = str.split('.'); // 处理整数部分,千分位分隔 const formattedInteger = integerPart .split('') .reverse() .reduce((prev, next, index) => { return (index % 3 ? next : next + ',') + prev; }); // 合并整数部分和小数部分 return decimalPart ? `${formattedInteger}.${decimalPart}` : formattedInteger; }
分类:
js基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南