如果我有一个像3.75的浮点数,我怎么能把它分成整数3和浮点数0.75?
我是否必须将float转换为字符串,然后将字符串拆分为".",然后将这些部分转换为整数和浮动,或者是否有更优雅或"正确"的方法来执行此操作?
Ali*_*kau 22
你可以使用带有参数的Numeric #divmod1:
返回一个数组,其中包含通过将num除以numeric得到的商和模数.
a.divmod 1
=> [3, 0.75]
Run Code Online (Sandbox Code Playgroud)
如果要获得精确值,此方法也可用于BigDecimal:
3.456.divmod 1
=> [3, 0.45599999999999996]
require 'bigdecimal'
div_mod = BigDecimal("3.456").divmod 1
[div_mod[0].to_i, div_mod[1].to_f]
=> [3, 0.456]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8245 次 |
| 最近记录: |