ruby - BigDecimal - 基本计算

标签 ruby bigdecimal

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
  1. 如何在 BigDecimal 中将 0.601E1 转换为 6.1

  2. 我在哪里可以找到一些基本的 BigDecimal 资源?

  3. 还有其他基本 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/

相关文章:

java - 在 BigDecimal 中提取数字小数

java - 使用 Java Enum 表示 BigDecimal 常量

java - super CSV 和分组分隔符

css - SCSS 的 Nanoc 过滤器

ruby - 无法使用 DataMapper 在 SQLite 中创建新实体

ruby-on-rails - WebKit/Chrome 时间戳转换为 Ruby/Rails

ruby-on-rails - 使用回形针将照片上传到 Amazon s3 时出现问题

Ruby HEREDOC 语法解释字符串

java - 使用 Streams 添加 BigDecimals

java - Hibernate - 自定义方言的 BigDecimal 列映射