php生成结果如下:
ERROR - 2017-12-04 10:25:39 --> 0.2778--double
ERROR - 2017-12-04 10:25:39 --> 0.6111--double
ERROR - 2017-12-04 10:25:39 --> 0.1111--double
将其组合成字符串后传给js中生成饼状图,表格插件highcharts:
我传给前端的是一个字符串(不是数字),格式如下:['门店1',27.78],['门店2',61.11],['门店3',11.11],但是那个门店1的结果就显示不对,但是我这边不知道如何处理。请问如何解决?
javascript数字精度问题,在小数和超大数都有可能出现。
对于小数在计算过程中,我们可以扩大倍数在计算,取整,然后缩小倍数得到实际结果,举个例子:
这样看起来是没多少问题了,但是前面说过了一个问题,javascript对于超大的整数(超过了Math.pow(2, 53))也存在一个精度问题,看下面:
所以当如果你需要精确的小数位比较多,那么你扩大的倍数肯定就比较大,最后得出的整数就会可能超过Math.pow(2, 53),那么就存在一个精度问题。这是一个无法避免的问题。
对于这种问题一般可以分两步解决:小数的计算可以扩大倍数;对于超大数,可以考虑转换数量级单位保存,例如元转换成万元,亿元.
如果不对,请指出.