BigDecimal.valueOf
> 将 double 转换为 BigDecimal,使用 double 的规范字符串表示形式,由 Double.toString(double) 方法提供。
Double.toString
> m 或 a 的分数部分必须打印多少位数字?分数部分必须至少有一位数字,之后可以有更多,但只可以有那么多,以唯一区分 double 类型的相邻值。也就是说,假设 x 是此方法为有限非零参数 d 产生的十进制表示所表示的确切数学值。那么 d 必须是最接近 x 的 double 值;如果两个 double 值与 x 同等接近,那么 d 必须是它们之一,并且 d 的尾数的最不签约必须为 0。
`rationalize` 的实现使用 `BigDecimal.valueOf`,它负责舍入。精确转换将是通过 `BigDecimal(double)` 构造函数实现的。