为了账号安全,请及时绑定邮箱和手机立即绑定

Golang:如何将 float64 货币表示形式转换为最低面额?

Golang:如何将 float64 货币表示形式转换为最低面额?

Go
湖上湖 2023-04-17 16:32:17
我正在处理金钱的 float64 表示。例如,2.9 美元表示 2.90 美元,所以如果我需要将其转换为该货币的最低面额,我只需乘以 100(2.9*100=290 美分)。这适用于大多数主要货币。但是,例如在日本,float64 表示不会有小数,因为日元已经是最低表示。如果我得到 float64(290) 日元,如果我试图获得最低面额,乘以 100 会得到过多的日元 - 它应该保持原样。当某些货币乘以 100 时,除了特殊大小写之外,处理此问题的最佳方法是什么?编辑:我拥有的两条信息是浮动表示和 ISO 货币代码。
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

不要用浮点数来赚钱。浮点数是一个近似值。float64(所有 IEEE-754 64 位浮点数的集合)符合 IEEE 浮点运算标准 (IEEE 754)。

维基百科:IEEE 754


使用 ISO 4217 标准来确定次要货币单位指数。大多数货币为 2 (10² = 100),日元 (JPY) 为 0 (10⁰ = 1)。



查看完整回答
反对 回复 2023-04-17
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信