js里根本没有整数,统统都是双精度数?这个命题对否。还有经过实验:
201307031632550891
->201307031632550880
201307031646670893
->201307031646670880
2013070316466708931
->2013070316466709000
20130703164667089311
->20130703164667090000
201307031646670893111
->201307031646670880000
2013070316466708931111
->2.013070316466709e+21
1111111111111111111111
->1.1111111111111111e+21
1e15
->1000000000000000
1e21
->1e+21
1e20
->100000000000000000000
1.1111111111233434343e20
->111111111112334340000还有数字少于22位,以整数形态显示,否则科学计数法显示。
精度:15位有效数字(包括小数点前面的那个),所以对于小数点后面的第15位开始,数字已经没有意义了都是不准确的。这个理解对不对。
201307031632550891
->201307031632550880
201307031646670893
->201307031646670880
2013070316466708931
->2013070316466709000
20130703164667089311
->20130703164667090000
201307031646670893111
->201307031646670880000
2013070316466708931111
->2.013070316466709e+21
1111111111111111111111
->1.1111111111111111e+21
1e15
->1000000000000000
1e21
->1e+21
1e20
->100000000000000000000
1.1111111111233434343e20
->111111111112334340000还有数字少于22位,以整数形态显示,否则科学计数法显示。
精度:15位有效数字(包括小数点前面的那个),所以对于小数点后面的第15位开始,数字已经没有意义了都是不准确的。这个理解对不对。
这个精度作为一般web应用足够了
这个是JS的固有特性吧。。能用整数JS当然会用整数吧,比如如果是a=1.0,那么a会视为整数1,只有当JS认为你需要用到浮点数的时候才会转为浮点类型吧,比如a=1.0;a*=0.5;这个时候a就是浮点类型了。
函数 parseInt 和 parseFloat 就是最好的佐证当整型数溢出时就自动转换成浮点数