四舍五入是将数字转换为十进制时产生的副作用,因为双精度字面量 `1.6` 在二进制中代表一个有限分数,但~在十进制中是无限大的[抱歉,这不是正确的;正在调查中]。因此 `rationalize` 找到一个与四舍五入到双精度相同的分数,在某些情况下可能有用,但这并不明显,我只期望它作为精确转换的补充而不是替代。与其它语言比较
Python
```
from fractions import Fraction
print(Fraction(1.6))
```
`3602879701896397/2251799813685248`
Ruby
`puts 1.6.to_r`
`3602879701896397/2251799813685248`
Racket
```
#lang racket
(println (inexact->exact 1.6))
```
`3602879701896397/2251799813685248`