数据格式化
zhaoqg4919
java开发多年
展开
-
DecimalFormat对数值格式化的舍入问题——RoundingMode
背景:在对数值做一些计算的时候,往往我们需要控制计算结果的精度,所以会使用到DecimalFormat类来将数值格式化成字符串。在最近测试中,突然注意到默认使用DecimalFormat进行格式化时,并非我们一般认识上的四舍五入,而是一种诡异的舍入——(1)5以下舍去(2)5以上舍入(3)若前一位是奇数,5就舍入(4)如前一位是偶数,5就舍去遇到这样的统计结论,没有理论的支持,我们翻译 2017-07-20 14:11:49 · 956 阅读 · 0 评论 -
解决double类型相减有误差的问题
今天在写脚本时发现double 类型的相减 跟实际结果有误差,如 :19.9-9.9=9.9999999999999,而不是10,百度后发现double相减会转换成二进制,因double有效位数为 16位这就会出现存储小数位数不够的情况,这种情况下就会出现误差,解决方法就是使用BigDecimal,它的有效长度足够长可存储 小数位数因此可代替double来进行加减乘除,下面为BigDecimal的...翻译 2017-07-21 15:29:14 · 2765 阅读 · 0 评论