【问题标题】:Rounding in Ruby (Rails) [duplicate]Ruby(Rails)中的舍入[重复]
【发布时间】:2017-07-21 07:49:00
【问题描述】:

我不知道为什么这么难,我显然使用了错误的方法。但是我正在使用 Stripe API(一切正常),并且我正在尝试将订阅量四舍五入到小数点后两位。

例如,Stripe 强制我使用美分作为货币单位。因此,如果我订阅了 995 美分,我显然希望它显示为 9.95 美元。但是我使用的方法 (number_with_precision (995 / 100, :precision => 2) 给了我 9.00 而不是 9.95。然后我尝试了“圆形”方法,它也给了我 9.00。

我在 StackOverflow 上看到了一些四舍五入的帖子,但我似乎找不到任何可以解决我转换为美元/美分然后四舍五入到小数点后 2 位的问题。

对此的任何帮助将不胜感激。提前感谢您的宝贵时间。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 stripe-payments


    【解决方案1】:

    您只需将正确的数据类型传递给帮助程序。

    与其提供Integer 实例(995 / 100 给你整数9),不如传递一个Float 实例(995 / 100.to_f,它给你Float 9.95):

    number_with_precision (995 / 100.to_f, precision: 2) # or 995 / 100.0
    #=> 9.95
    

    【讨论】:

    • 这样就完成了!哎呀!谢谢!
    【解决方案2】:

    你可以尝试使用995 / 100.00(Python也有这种行为)。

    当您使用整数/整数 => 整数时。 做一个整数/浮点数 => 浮点数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      相关资源
      最近更新 更多