货币代码与符号速查

4 个速查板块 · 关联 3 款站内工具 · 数据最后核对 2026-10-05

CNY 和 RMB 有什么区别、¥ 和 $ 分别在哪些国家用、货币代码的三位字母怎么记、金额里的小数位为什么不一样。

货币代码是一组三位字母,用来在国际场景中无歧义地标识一种货币。它的存在是因为货币符号本身有大量歧义:「$」可能是美元、澳元、加元或港币,「¥」既指人民币也指日元。

做跨境业务、财务对账、汇率换算时,用代码而不是符号是最基本的规范。了解代码的构成规则,即使在没见过的货币前也能大致判断它属于哪个国家。

1常用货币代码对照

以下是最常涉及的币种。代码由两位国家或地区代码加一位货币单位缩写组成。

货币ISO 代码符号小数位
人民币CNY¥ / ¥2 位
美元USD$2 位
欧元EUR€2 位
英镑GBP£2 位
日元JPY¥ / ¥0 位
中国香港元HKDHK$2 位
新加坡元SGDS$2 位
韩元KRW₩0 位
澳元AUDA$2 位
加元CADC$2 位
瑞士法郎CHFCHF2 位
印度卢比INR₹2 位
俄罗斯卢布RUB₽2 位
泰铢THB฿2 位

代码的构成规律是「国家或地区两位代码 + 货币单位首字母」。比如 `CNY` 是中国的 Y(Yuan)、`USD` 是美国的 D(Dollar)、`JPY` 是日本的 Y(Yen)。理解这个规律,看到陌生代码也能大致猜出归属。

2多义符号怎么区分

有几个符号被多个币种共用,直接看符号无法判断是哪种货币。这类场景必须用代码或加前缀。

符号可能含义区分方式
$美元、澳元、加元、新元、港币、墨西哥比索等写 US$、A$、C$、HK$,或直接用代码
¥ / ¥人民币、日元写 CNY / JPY,或写成 CN¥ 与 JP¥
£英镑(历史上也有其它镑)一般指 GBP,必要时写代码明确
₩韩元符号基本唯一,但建议配合 KRW
kr瑞典、丹麦、挪威等国的克朗必须用代码区分(SEK / DKK / NOK)
R南非兰特、巴西雷亚尔等用代码 ZAR / BRL 明确区分
元人民币、日元、韩元等汉字文化圈货币中文语境下通常指人民币,但跨境场景需明确

在国际化产品里,金额展示的通行做法是「代码 + 符号 + 数值」,例如 `USD $1,234.56`。这样即使符号有歧义,也能从代码确定币种。仅靠符号的产品在跨国场景中几乎必然出问题。

3小数位差异与金额书写

不同货币的最小单位不同,这直接影响输入校验与显示格式,是跨境开发中容易忽略的细节。

币种小数位最小单位影响
美元、欧元、人民币等2 位分最常见的两位小数
日元、韩元0 位元不显示小数,四舍五入到整数
部分中东货币3 位千分之一单位如科威特第纳尔、巴林第纳尔
个别货币无标准小面额视币种而定输入框与校验规则需按币种配置
千分位差异美式 1,234.56欧陆式 1.234,56小数点与千分位符号的角色互换
空格分隔部分国家用空格分组如 1 234,56国际化格式化库会按地区处理

做金额输入时不要写死两位小数。有些货币没有小数(日元),有些是三位(第纳尔),应按币种配置小数位,否则会出现「输入合法但计算错误」或「无法输入正确金额」的问题。

4换算与使用时要注意的几点

区分买入价与卖出价
银行牌价有买价与卖价的差别,换算时用错了会与实际到账不符
注意中间价与现钞价
中间价用于参考,实际换钞与电汇的价格不同,小额换汇差异更明显
保留足够的中间精度
多步换算时先保留较多位小数,最后再按币种小数位取整,避免误差累积
汇率随时刻变化
报价型产品应标注汇率的时间点,避免读取缓存导致展示与实际不符
金额与币种绑定存储
数据库里金额字段应同时存币种,只存数字会导致后续无法解释含义
避免用浮点数存金额
金额应以最小单位的整数(如分)或定点小数存储,浮点数会带来精度误差
代码大小写
ISO 代码标准写法是大写,存储与比较时统一大写可避免匹配问题

关于「货币代码与符号速查」的常见问题

CNY 和 RMB 有什么区别?

CNY 是 ISO 4217 标准规定的货币代码,用于国际金融、银行系统与数据交换;RMB 是「人民币」拼音首字母的缩写,属于习惯用语,用于日常交流。在正式场景中应该使用 CNY,比如填写银行单据、对接支付接口、配置汇率数据源时,字段值都要求是标准代码。RMB 虽然广为人知,但它不是标准代码,在程序里作为币种标识可能导致对接失败或数据不一致。简单说:CNY 是规范代码,RMB 是俗称,功能上二者指同一种货币,但技术场景要用 CNY。

¥ 符号到底代表人民币还是日元?

两者都用 ¥ 这个符号,所以单看符号无法判断,必须依靠上下文或加上区分前缀。人民币的代码是 CNY,日元的代码是 JPY,在需要明确时应当写成 CN¥ 和 JP¥,或者直接使用三位代码。这种歧义在跨境业务里会造成实际问题,比如一份报价单只写 ¥1000,对方可能理解成一千元人民币,也可能理解成一千日元,两者价值相差很大。所以通行做法是「代码加符号加数值」一起写,例如 CNY ¥1,000,这样即使符号有歧义也能从代码确定币种。另外 $ 符号同样被美元、澳元、加元、港币等共用,处理方式相同。

为什么日元的金额没有小数?

因为日元的最小流通单位就是 1 日元(元),没有「分」这样的小面额。这是 ISO 4217 标准里明确规定的:日元的小数位是 0 位,而美元、欧元、人民币等是 2 位,还有少数货币是 3 位(如科威特第纳尔)。这个差异对软件开发影响不小:如果金额输入框和校验规则写死两位小数,遇到日元就会出现逻辑错误或用户无法正确输入的情况。正确做法是按币种配置小数位,显示与校验都读取该配置。同理,在做汇率换算时,中间计算应保留足够精度,最后再按目标币种的小数位取整,否则会累积误差。

跨境金额显示要注意什么?

主要注意四件事。第一是币种必须明确,符号有歧义,应使用 ISO 三位代码或「代码加符号」的写法。第二是数字格式的地区差异,美式习惯是千分位用逗号、小数点用点(1,234.56),欧陆部分国家恰好相反(1.234,56),同一串数字在两地的含义完全不同,应使用国际化格式化库按地区处理而不是手工拼接。第三是小数位差异,日元是 0 位、多数币种 2 位、少数 3 位,应按币种配置。第四是存储方式,金额在数据库里应同时保存币种,并以最小单位的整数或定点小数存储,千万不要用浮点数存金额,否则会带来难以排查的精度误差。

内容标识:本页内容由人工智能辅助生成,并经人工核对与编辑。详见 人工智能生成内容标识说明。
内容说明:本页速查数据由本站自行整理,事实性内容以对应官方规范与文档为准,未复制第三方速查表或百科的表述。数据最后核对日期:2026-10-05。若发现错误或已更新的标准,欢迎通过页脚反馈入口告知。