登录
首页 >  Golang >  Go问答

Golang:如何将 float64 货币表示形式转换为最低面额? (乘以 100 并不适用于所有货币)

来源:stackoverflow

时间:2024-04-18 16:15:37 266浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《Golang:如何将 float64 货币表示形式转换为最低面额? (乘以 100 并不适用于所有货币)》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我正在处理货币的 float64 表示形式。例如,2.9 美元代表 2.90 美元,因此如果我需要将其转换为该货币的最低面额,我只需乘以 100(2.9*100= 290 美分)即可。

这适用于大多数主要货币。然而,例如在日本,float64 表示形式不会有小数,因为日元已经是最低的表示形式。如果我得到 float64(290) 日元,如果我试图获得最低面额,则乘以 100 会得到多余的日元 - 它应该保持原样。

当某些货币乘以 100 时,除了特殊大小写之外,处理此问题的最佳方法是什么?

编辑:我拥有的两条信息是浮点表示形式和 ISO 货币代码。


解决方案


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

维基百科:IEEE 754

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

维基百科:ISO 4217

Current currency & funds code list

到这里,我们也就讲完了《Golang:如何将 float64 货币表示形式转换为最低面额? (乘以 100 并不适用于所有货币)》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>