奇奇怪怪的BUG

Double类型数据 初始化BigDecimal

使用Double作为参数构造BigDecimal对象,无法精确构造出对应的BigDecimal 见图1
建议使用字符串初始化 BigDecimal对象 或者直接BigDecimal.valueOf(double)
否则初始化对象就错了 进行四舍五入的时候更是会导致数据错误 像0.85保留一位小数 就会变成0.8 而不是0.9了

图1.png

前端小数相加精度问题

0.1+0.2!=0.3.png

判断字符串是否可转化为数字 NumberUtils.isCreatable()

"0001" - "0007" 输出true “0008”,“0009” 输出false
原因: 0开头 会被识别为 八进制数字 故单个数字不能大于7
可转用 NumberUtils.isParsable()

你可能感兴趣的:(奇奇怪怪的BUG)