首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Rails控制台中将Big Decimal转换为String

在Rails控制台中将Big Decimal转换为String
EN

Stack Overflow用户
提问于 2014-01-08 03:09:46
回答 3查看 8.8K关注 0票数 9

我正在尝试让我的控制台打印出我所有位置的总和,费率卡定价。

我试图通过控制台完成这项任务,但结果是得到了一个BigDecimal。不知道如何将结果转换为易读的字符串或整数。

结果:

代码语言:javascript
运行
复制
Location.pluck(:rate_card).sum
      => "#<BigDecimal:7f7cf347edd0,'0.3091675E6',18(36)>"

在我的位置'index‘中,为了能够看到美元金额,我的设置如下:

代码语言:javascript
运行
复制
 <%= number_to_currency(location.rate_card, :precision => 2) %>

提亚

EN

回答 3

Stack Overflow用户

发布于 2014-02-19 19:26:00

代码语言:javascript
运行
复制
Location.each do |e|
  puts e.rate_card.to_s.to_f.round(2)
end
票数 11
EN

Stack Overflow用户

发布于 2015-09-15 04:37:43

您将看到:rate_card作为BigDecimal返回,因为它是在数据库模式中定义的。如果您要在Rails控制台中发出Location.rate_card.class,您将看到=> BigDecimal

正如@Darby所提到的,您可以使用round。在控制台中,发出Location.pluck(:rate_card).sum.round(2)命令,它将正确显示所需的四舍五入的结果。

最后,你的结果的第二部分有意义吗?您展示了用于正确显示视图代码的代码,但我认为这与您的问题无关。

票数 3
EN

Stack Overflow用户

发布于 2016-07-28 02:09:09

BigDecimal可以转换为如下所示的字符串。

代码语言:javascript
运行
复制
pry(main)> b = BigDecimal.new('78.23')
=> #<BigDecimal:7ff0119cab68,'0.7823E2',18(18)>
[37] pry(main)> b.to_s
=> "0.7823E2"

您不需要先将其更改为字符串,然后再更改为浮点数。在BigDecimal对象上定义to_f

代码语言:javascript
运行
复制
[34] pry(main)> b.to_f
=> 78.23

还有分别用于整数和有理数的to_ito_r

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20979774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档