ruby - 如何将 BigDecimal 转换为两位小数的字符串?

标签 ruby string

我想将 BigDecimal 对象转换为保留两位小数的货币值。我不想四舍五入。我该怎么做?

以下方法均无效:

v = BigDecimal("7.1762")
w = BigDecimal("4.2")

v.to_s('2F')            # => "7.17 62"
v.to_s('F')             # => "7.1762"
v.to_s('%0.2F')         # => "0.71762E1"
v.to_s('%0.2f')         # => "0.71762E1"
v.truncate(2).to_s('F') # => "7.17" # This one looks like it worked
w.truncate(2).to_s('F') # => "4.2"  # But it doesn't pad with the trailing zero(es)

最佳答案

结合BigDecimal#truncate怎么样?和 String#% ? :

"%.2f" % BigDecimal("7.1762").truncate(2)
# => "7.17"
"%.2f" % BigDecimal("4.2").truncate(2)
# => "4.20"

关于ruby - 如何将 BigDecimal 转换为两位小数的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24915570/

相关文章:

ruby-on-rails - 使用 String#split 方法

c++ - 如何从 C 风格的 const char* 数组中提取整数

string - 在 kotlin 中,空对象的 toString() 方法返回空字符串而不是 "null"的最佳方法是什么

ruby-on-rails - 将 devise_token_auth 与表单例份验证一起使用

ruby-on-rails - 将 XML 转换为 Ruby 哈希时保留属性

ruby - JRuby:导入与包含与 java_import 与 include_class

java - Android 中的离线数据库

mysql - 是否有可能在 Rails 中从 MySQL 关闭中解救出来?

ruby - Ruby 中 "and"和 && 的区别?

ruby - 关于 Ruby Gsub