require 'bigdecimal'
sum = BigDecimal.new("2.33")
sum1 = BigDecimal.new("3.68")
sum2 = sum + sum1
puts sum2
# 0.601E1
# my attempt at converting scientific notation
puts sum2.to_i
# 6
如何在
BigDecimal
中将0.601E1
转换为6.1
?我在哪里可以找到一些基本的
BigDecimal
资源?还有其他基本
BigDecimal
概念我应该牢记吗?
最佳答案
1) 您必须使用 paramter 'F'
调用 #to_s
。
sum2.to_s('F')
其他人给你的解决方案不是很好,如果你将 BigDecimal 转换为立即 float ,你将失去精度。
2) Ruby documentation还不错。
3) 重要的概念是:不要将使用 BigDecimal 计算的立即结果转换为 Float(即 IEE float )。你将以这种方式摧毁所有的努力。这是一个很容易掌握的概念,但很多人却未能掌握。
关于ruby - BigDecimal - 基本计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490964/