四舍五入是将数值转换为十进制的小数点数时的副作用,因为双精度的文字`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`