四舍五入是转换为十进制的小数点运算产生的副作用,因为双精度浮点字面量 `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`