💱 格式化设置

同一个货币在不同地区的写法可能不同(如 €1.234,56 vs €1,234.56)。

💱

输入金额,点「格式化」。

📊 主要货币一览

同一个金额在各主要货币下的写法,随上面的设置实时变化。

货币代码本地写法默认小数位

⚠️ 说明:本工具只做数字格式的展示转换,不涉及任何汇率换算。
不同货币之间没有做任何金额折算,同一数字在不同货币下显示的只是「这个数字按该货币的书写习惯怎么写」。
货币符号、小数位与分组规则来自浏览器内置的 ICU 数据,不同浏览器 / 系统版本可能略有差异。
输入内容在本地处理,不上传。

💱

在线多国货币格式化

开发工具 完全免费 🌙 支持黑夜模式 🔒 本地计算,不上传 🌍 100+ 货币 📋 生成代码

做国际化产品时,金额的显示是个细节活:
· 美元写作 $1,234.56;
· 德国的欧元写作 1.234,56 €(千分位和小数点符号正好相反,货币符号还在后面);
· 日元没有小数位,写作 ¥1,235;
· 瑞士法郎写作 CHF 1’234.56(千分位是撇号)。
自己写正则去拼这些规则,很快就会漏掉某个国家,而且规则还会变。
正确做法是用 Intl.NumberFormat——浏览器内置的国际化数字格式化器,ICU 数据库里已经维护好了全世界的规则,你只需要告诉它「用哪种货币、哪个地区」。
这个工具能:
① 按任意货币 + 任意地区格式化金额;
② 切换显示方式:符号 / 代码 / 本地名称;
③ 开关千分位、切换小数位、开启紧凑记数(1.2万 / 1.2M);
④ 一键生成对应代码,直接粘到项目里用;
⑤ 下方表格列出主要货币的写法,方便横向对比。
注意:这里不做汇率换算。输入 1234,选美元显示 $1,234.00,选日元显示 ¥1,234——只是写法不同,金额数值一样。

类别开发工具
技术Intl.NumberFormat(ICU)
货币100+ 种
功能格式化,不含汇率换算

核心特性

100+ 货币
地区自由组合
符号 / 代码 / 名称
紧凑记数
千分位开关
小数位自定义
一键生成代码
主要货币对照表

关于这个工具

怎么实现:
① 核心调用:new Intl.NumberFormat(locale, { style:'currency', currency, currencyDisplay, useGrouping, notation:'compact' });
② 货币列表:优先用 Intl.supportedValuesOf('currency') 取出系统支持的全部 ISO 4217 货币代码,老浏览器回退到内置的常用货币清单;
③ 默认小数位:用 formatToParts 找出 fraction 部分的长度,或直接用 resolvedOptions().maximumFractionDigits 读取;
④ 本地名称:Intl.DisplayNames([locale], { type:'currency' }),不支持时回退到代码;
⑤ 代码生成:把当前选项拼成可直接粘贴的 JS 片段,含 format() 调用。
它不做:不算汇率、不做货币转换、不校验金额合法性、不处理四舍五入策略(ICU 默认 halfExpand)。

怎么用

  1. 第 1 步
    输入金额(如 1234567.891)。
  2. 第 2 步
    选货币与地区,点「💱 格式化」。
  3. 第 3 步
    切换「符号 / 代码 / 本地名称」看不同写法。
  4. 第 4 步
    看下方主要货币一览表横向对比。
  5. 第 5 步
    开发者点「📋 复制代码」直接拿去用。

更新记录

  • v1.0 2026-09-21 工具正式上线:基于浏览器原生 Intl.NumberFormat 实现多国货币格式化,覆盖 100+ 种 ISO 4217 货币与常用地区,支持符号 / 代码 / 本地名称三种显示、千分位开关、紧凑记数、小数位自定义,附主要货币对照表与一键生成代码;老浏览器无 `Intl.supportedValuesOf` 时回退内置货币清单,`Intl.DisplayNames` 不可用时回退代码。全程本地计算,明确说明不含汇率换算,适配黑夜模式。

常见问题

这个工具能换算汇率吗?
不能,也不打算做。本工具只做数字的书写格式转换:
输入 1234,选美元显示 $1,234.00,选日元显示 ¥1,234——数值都是 1234,没有做任何折算。
真实汇率换算需要实时汇率数据源,那属于需要联网和时效承诺的功能,与本工具「纯本地、零依赖」的定位不符。
需要汇率请查银行或正规汇率接口。
为什么同一个货币换地区,写法会变?
因为格式化的规则由地区(locale)决定,而不是货币本身:
· de-DE(德国):1.234,56 €——千分位是点,小数点是逗号;
· en-US(美国):€1,234.56——反过来;
· ja-JP(日本):¥1,235——日元无小数位。
这正是做国际化时最容易踩的坑:以为「货币决定格式」,其实是地区决定格式。
「紧凑记数」是什么?
把大数字缩写成更易读的形式,常见于社交平台的点赞数、播放量:
· 中文:123万、1.2亿;
· 英文:1.2M、3.4K;
· 日文:123万。
对应代码是 notation: 'compact'。注意它是近似显示,会按规则四舍五入,不适合用于精确金额展示(账单、合同千万别用)。
显示成「本地名称」时是乱码或英文?
`Intl.DisplayNames` 的货币名称需要浏览器支持。如果:
· 显示成英文(如 US Dollar)→ 说明当前 locale 是英文,换中文地区即可;
· 显示成代码(如 USD)→ 说明浏览器不支持 DisplayNames,工具已自动回退;
· 完全空白 → 请升级浏览器。
这是能力差异,不是故障。
我输入的数据会上传吗?
不会。所有格式化都在你的浏览器本地完成,没有任何网络请求,输入内容不存储、不上传。
处理财务相关的数字时,这一点比在线工具更稳妥。

💬 留言板 0

全部留言需审核通过后展示
💬

还没有留言,来抢沙发吧!

✍️ 说点什么
0 / 500
图形验证码