今天线上出了一个生产事故,付款金额在保留小数的时候方式不对,导致多付款一分钱。
在使用BigDecimal保留小数的时候,开发人员直接丢掉多余的小数位,而不是四舍五入。
系统是首次正式交付用户上线使用,还好这个bug很快就修复了,否则后果会非常严重。
这个事情提醒我,在金融系统中,涉及到数值计算的地方,一定倍加小心。
1.数值计算,对小数位,通常采用四舍五入的方式处理。
今天线上出了一个生产事故,付款金额在保留小数的时候方式不对,导致多付款一分钱。
在使用BigDecimal保留小数的时候,开发人员直接丢掉多余的小数位,而不是四舍五入。
系统是首次正式交付用户上线使用,还好这个bug很快就修复了,否则后果会非常严重。
这个事情提醒我,在金融系统中,涉及到数值计算的地方,一定倍加小心。
1.数值计算,对小数位,通常采用四舍五入的方式处理。