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位开始,数字已经没有意义了都是不准确的。这个理解对不对。

解决方案 »

  1.   

    都是浮点数形式
    这个精度作为一般web应用足够了
      

  2.   

    不是没有整数吧。。是你这数字太大,有效数字太多,JS没有这么大的整数,然后就将他们视为浮点数了吧。。
    这个是JS的固有特性吧。。能用整数JS当然会用整数吧,比如如果是a=1.0,那么a会视为整数1,只有当JS认为你需要用到浮点数的时候才会转为浮点类型吧,比如a=1.0;a*=0.5;这个时候a就是浮点类型了。
      

  3.   

    js 的数值分为 整型数 和 浮点数 两种
    函数 parseInt 和 parseFloat 就是最好的佐证当整型数溢出时就自动转换成浮点数
      

  4.   

    有整数的吧,你定义的时候用parseInt转换过来,不要用Number类型
      

  5.   

    http://mojijs.blog.163.com/blog/static/2189132962013649105163/http://www.ecma-international.org/publications/standards/Ecma-262.htm 
      

  6.   

    javascript引擎内部会管理Number型的精度吧