gpt4 book ai didi

ruby-on-rails - Ruby Money gem 最好的 rounding_method 是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 08:39:39 26 4
gpt4 key购买 nike

我们正在使用 Ruby 的 Money gem。在我们的应用程序中,我们也在货币之间进行转换。

因此,当您在货币之间进行转换时,会出现四舍五入的问题。目前我们正在使用 Ruby 的内置 Float#round .

但是,这引入了“悬垂的一分钱”问题。

Money.new(500,'USD').exchange_to('EUR')
#=> #Money cents:385 currency:EUR

Money.new(500,'USD').exchange_to('EUR').exchange_to('USD')
#=> #Money cents:501 currency:USD

所以 5.00 美元在转换为欧元后变成了 5.01 美元,然后又变回来了!这些是我们使用的汇率:

{
"GBP_TO_USD"=>1.6,
"USD_TO_GBP"=>0.625,
"GBP_TO_EUR"=>1.2,
"EUR_TO_GBP"=>0.8333333333333334,
"EUR_TO_USD"=>1.3,
"USD_TO_EUR"=>0.7692307692307692
}

有没有可能有一个四舍五入的方法来避免多分钱或少分钱的问题?该舍入方法是什么?

或者这是一个数学上无法解决的问题?

最佳答案

一旦将数字四舍五入,信息就会丢失。解决您的问题的最佳方法是停止四舍五入(无论如何您都不应该用钱来做)并且仅在您在某处显示值(value)时才四舍五入。

关于ruby-on-rails - Ruby Money gem 最好的 rounding_method 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12643988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com