Zyp*_*rax 2 ruby decimal pretty-print number-formatting
当我漂亮打印小数时,有没有办法更改小数的默认格式?
irb(main):521:0> pp 10.to_d / 2.5
0.4e1
Run Code Online (Sandbox Code Playgroud)
我想将其格式化为:
irb(main):521:0> pp 10.to_d / 2.5
4.0
Run Code Online (Sandbox Code Playgroud)
我真的不关心潜在的精度损失。当您漂亮地打印 Rails 记录时,默认格式读起来特别烦人:
<
...
id: 49391,
operator_id: 1,
tax_rate: 0.10e2,
sales_price: 0.1e2,
unit_price: 0.2e1,
>
Run Code Online (Sandbox Code Playgroud)
我知道我可以执行to_s或to_f等操作,但漂亮打印的全部要点是,在快速浏览记录之前我不必转换记录。
您可以对漂亮打印机使用的方法进行猴子修补。“正常”IRb 使用inspect,但大多数漂亮的打印机库都有自己的方法。
例如,标准库中的pp库使用名为 的方法pretty_print。BigDecimal不幸的是,它没有自己的实现,它只是继承了刚刚委托给 的pretty_print实现。Numericinspect
所以,我们可以自己写!
class BigDecimal
def pretty_print(pp)
pp.text to_s('F')
end
end
pp 10.to_d / 2.5
# 4.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2674 次 |
| 最近记录: |