java - 如何从以微单位表示的给定金额中提取单位和子单位部分?

标签 java regex currency rounding-error

我正在使用 Java 开发项目,并且价格以微单位为单位。

微单位价格是指 1,000,000 微单位等于 1 个货币单位的价格。例如,如果价格为“€7.99”,则price_amount_micros 为“7990000”

我需要将 7 和 99 提取为单独的字符串。阅读了一些有关舍入错误的帖子后,我认为实现我需要的正确方法是将给定金额转换为字符串并使用以下正则表达式提取单位和子单位部分:

^(\d+)(\d{2})0000$

但是,出于某种原因,我觉得这不是一种优雅的方式。

最佳答案

您可以将其细化为:

^(\d+)(\d{2})0{4}$

但恕我直言,你就完成了。

我在数据库中将所有价格处理为 INT。 7.99 就是 799。 没有舍入误差。

关于java - 如何从以微单位表示的给定金额中提取单位和子单位部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45188361/

相关文章:

regex - vbscript函数清理字符串只允许某些字符

json - js RegEx : Remove callback function call, 但保留参数(JSON)

java - <f :convertNumber> use the right number separator when using patterns to format currency?

货币套利和矩阵

java - Spring - java.io.FileNotFoundException : class path resource cannot be opened because it does not exist

java - 十六进制到十进制的读写?

java - 在 Java Swing 中,当我将 JScrollPane 添加到我的面板时,什么也没有出现

java - prepareStatement() 和 preparedStatement() 行为之间的区别

regex - 如何根据特定模式分割 CSV 行

odoo - Odoo 8/9 是否具有多币种电子商务功能?