JavaScript 格式化数字成金额格式
在看公司一个项目的JavaScript代码时,发现一段JavaScript代码,是把数字格式化成金额格式
比如:
12345.678 格式化成 12,345.68
看完代码后,google了一下,发现原来这是个几乎标准的写法,把代码写在了Number的prototype下
代码如下
Number.prototype.numberFormat = function(c, d, t){ var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "." : d, t = t == undefined ? "," : t, s = n < 0 ? "-" : "", i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))), j = (j = i.length) > 3 ? j % 3 : 0; return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); };
这个函数有3个参数,分别说明如下
c => 小数点后面有几位 (四舍五入到指定的位数)
d => 小数点 符号 (.) , 把它作为参数,是因为你可以自己制定你所需要的符号,比如你可以把 12345.678 格式化成 12,345#678 在这里,用# 符号 而不是 . 符号
t => 千分位的符号 (,) 也就是格式化成12,345.68中的逗号 (,), 你可以设置成任何你需要的符号, 比如 格式化成12@345.68 在这里,用@符号 而不是 , 符号
测试
123456.789.numberFormat(2,'.',',') = 123,456.79
123456.789.numberFormat(2,'*','#') = 123#456*79
1 |
分类:
JavaScript
标签:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律