Ruby on rails 3 Rails十进制计算和时髦的输出

Ruby on rails 3 Rails十进制计算和时髦的输出,ruby-on-rails-3,Ruby On Rails 3,我在Rails应用程序中尝试了一些十进制计算,但得到了一些奇怪的结果 @pprice = item.price - (( item.price / 100 ) * promo.discount) @pprice = item.price - promo.discount 每个价值项目、价格、促销、折扣等都是小数。然而,当试图计算时,我得到的结果好坏参半,没有一个是正确的总数。结果的范围是从零、0.0到-2.0,这取决于我是否包含了 第一个计算基于百分比折扣,第二个计算基于直接货币折扣 我已经

我在Rails应用程序中尝试了一些十进制计算,但得到了一些奇怪的结果

@pprice = item.price - (( item.price / 100 ) * promo.discount)

@pprice = item.price - promo.discount
每个价值项目、价格、促销、折扣等都是小数。然而,当试图计算时,我得到的结果好坏参半,没有一个是正确的总数。结果的范围是从零、0.0到-2.0,这取决于我是否包含了

第一个计算基于百分比折扣,第二个计算基于直接货币折扣

我已经在要测试的视图中执行了计算,并且它们显示正确,但是当它们移到控制器时,我得到了错误


非常感谢您的帮助。

由于您将这些值转换为浮点值,因此您的计算结果并不精确。
请参见

当我没有包含一个to_f时,我得到了一个未定义的方法-“for nil:NilClass”用于直接货币减少,或“undefined method/”用于nil:NilClass用于百分比减少计算。是的,只是做了更多的检查,我正在根据项目进行计算,在保存订阅之前,该项目不存在。我在@subscription.save之后移动了它,现在它可以正常工作了。谢谢。永远不要依靠浮子来给出精确的结果。始终使用BigDecimal。