“javascript的浮点格式能够精确表示出来的是有限的(确切说是18437736874454810627个,共20位),这就意味着在 javascript中使用实数时,表示出的数字通常是真实数字的近似值。”
问题1:那20位有限的数目是如何算出的?(相关网络资料我看了不少都没看懂,希望各位高手兄弟们用自己的话给我讲明            白,不要粘贴网址了)问题2:当输入了一个没在那18437736874454810627个中的一个实数,其大小在那个区间内部,JS如何存储呢?所谓近似值是            选择比该数字大的还是小的那个可以表示的值来存呢。拜托各位兄弟和前辈了!万谢!

解决方案 »

  1.   

    2.js选择附近的值来存储。
    我一般都不会用js来计算,连0.1+0.2都算不清,你用js的计算功能不是自找苦吃么
      

  2.   

    1.JavaScript的数字格式允许精确地表示:-9007199254740992(-2的53次方)和9007199254740992(2的53次方)之 间的所有整数,包括两边端点数中的某些整数运算是对32位的整数执行的,尤其逐位运算,他们的范围从-2147483648(-2的31次方)到2147483647(2的31次方-1)
      9007199254740992*2+2147483647*2+1=18437736874454810627
    2.超过此范围的数字,会采用科学技术法:
    如:
    34225234324234324324324212345345435342654;
    标示为:
    3.4225234324234324e+40