Ruby on rails RubyonRails大十进制值格式不正确

Ruby on rails RubyonRails大十进制值格式不正确,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-4,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 4,Ruby On Rails 3.2,大小数不显示数字值 a = BigDecimal.new("100.55") a = * a * a puts "big decimal #{a}" 输出 big decimal [#<BigDecimal:ad5a6e8,'0.101103025E5',18(45)>] big decimal[#] 如何以适当的格式显示它,就像12345.236一样您可以使用to_s('F')方法将其转换为float a = BigDecimal.new("100.55") a = a *

大小数不显示数字值

a = BigDecimal.new("100.55")
a = * a * a
puts "big decimal #{a}"
输出

big decimal [#<BigDecimal:ad5a6e8,'0.101103025E5',18(45)>]
big decimal[#]
如何以适当的格式显示它,就像12345.236一样

您可以使用
to_s('F')
方法将其转换为float

a = BigDecimal.new("100.55")
a = a * a
puts "big decimal #{a.to_s('F')}"
=> big decimal 10110.3025

感谢@stefan建议使用
to_s('F')
方法,而不是
to_F

因为你在做一个数组而不是一个。首先删除de*首先需要将a的值转换为BigDecimal。之后,使用to_f可以将其转换为浮点值。e、 g.a.first.to_f@Fahad如果我的答案有效,您可以将其标记为已接受。请注意,
Float#to#s
可能会返回一个以电子符号表示的字符串,例如
0.00001。to#s
返回
“1.0e-05”
。如果需要十进制表示法,则应使用
a.to_s('F')