问题源于工作中一个小问题,正常情况下下面的数值是上面两个数值之和,但结果明显有误。
我依次确认了前端、后端收到的数据和展示出来的数值结果一致之后,去找算法C化工程师,同事反馈问题出在他拿到数据之后,根据数据协议,依据四舍五入原则,对数据做了截断,所以问题出在 AHI 四舍五入这一步。由此,我需要修改算法输出结果,需要修改一下输出参数保留在小数点后两位。
方法是:假设存在一个小数 a = 1.23456,如果需要保存小数点后 N 位,那么 round(a*10^N) / 10^N 即可实现。(round实现四舍五入的功能)
这次事件给我的工作心得:工作中的数据传递要在源头优化,传递过程中尽量不要对数据做修改,如果结果出问题,能在源头改就在源头做修改!(除非由于编程语言的不同,有些数据必须要转换类型)