原文
1,BigDecimal (double val) 构造,用 double 当参数来构造一个 BigDecimal 对象。
2,但是这个构造不太靠谱 (unpredictable),你可能以为 BigDecimal (0.1) 就是妥妥的等于 0.1,但是你以为你以为的就是你以为的?还真不是,BigDecimal (0.1) 这货实际上等于 0.1000000000000000055511151231257827021181583404541015625,因为准确的来说 0.1 本身不能算是一个 double(其实 0.1 不能代表任何一个定长二进制分数)。
3,BigDecimal (String val) 构造是靠谱的,BigDecimal (“0.1”) 就是妥妥的等于 0.1,推荐大家用这个构造。
4,如果你非得用一个 double 变量来构造一个 BigDecimal,没问题,我们贴心的提供了静态方法 valueOf(double),这个方法跟 new Decimal (Double.toString (double)) 效果是一样的。
网友评论