我想将 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/