1、 js float 运算精度问题:
var i=1.3;
var n = i*10;
alert(n);
得到 n为13.0000000000000001。
因为JavsScript中,变量在存储时并不区分number和float类型,而是统一按float存储。而javascript使用IEEE 754-2008 标准定义的64bit浮点格式存储number,按照IEEE 754的定义:
decimal64对应的整形部分长度为10,小数部分长度为16,所以默认的计算结果为“7.0000000000000001”,如最后一个小数为0,则取1作为有效数字标志。
因此可以:
var i=1.3;
var n = parseFloat(i*10);