最近遇到一个浮点数精度的问题,对财务系统这很要命啊,根源在于十进制小数用二进制来表示时是无限循环小数,比如(0.1)10 = (0.[00011])2, [00011]为循环节。
好的解决方式是引入10进制数的库。不过简单起见,临时根据二进制浮点的表示规范hack一个解决方案。
温习下IEEE浮点数标准:
最近遇到一个浮点数精度的问题,对财务系统这很要命啊,根源在于十进制小数用二进制来表示时是无限循环小数,比如(0.1)10 = (0.[00011])2, [00011]为循环节。
好的解决方式是引入10进制数的库。不过简单起见,临时根据二进制浮点的表示规范hack一个解决方案。
温习下IEEE浮点数标准: