四舍五入是转换为十进制的一个副作用,因为双精度字面量 `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`