很久都没有写过自己的心得了,觉得这次遇到的问题还比较新鲜,于是决定还是给自己留下一个笔记,给大家分享一下!
在做项目的过程中,发现ext的type的String类型显示数据的时候对于数据的精度会有打折的现象。(eg:0.1234567890123456789..... 变成了 0.1234567890123456),我通过网络各位雷锋大哥的帮助看了之后还是没有解决这个问题。
原因:在js中,默认把超过17为以上的小数给自动截取显示,也就是说只能保存精确到小数点17位,最后一位采用四舍五入的方式进行显示。
解决方法:
1.如果显示所有的数据,就要在后台控制输出,把它以String的字符串的形式往前台送值,这样就不会损失精度。
2.采用js的自带函数(
toFixed
toFixedtoFixed(n) 用法:var n = 0.12345678945612378992; var m = n.toFixed(50);alert(m); n表示显示多少位小数)
注:这种方法不好的地方在于它是把数据显按照17位截取之后,后边的数据是自动添上的数据,存在数据的不真实情况,建议采用第一种。
3.ext主件,EXT.util.format.Number()的方法。这个和方法2的方法一样。