频道栏目
读书频道 > web开发 > Javascript > JavaScript编程精解(原书第2版)
1.2 数字
2015-12-03 15:44:50     我来说两句
收藏   我要投稿
《高级程序设计(第3版)》是 超级畅销书的**新版。ECMAScript 5 和HTML5 在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为 增添了很多适应未来发展的新特性。本书这一版除增加5 章  立即去当当网订购

数字(number)类型的值即数字值。在JavaScript中写成如下形式:


 

在程序中使用这个值的时候,就会将数字13以位序列的方式存放在计算机的内存当中。

JavaScript使用固定长度为64的位序列来存储数字值。我们只能使用64位存储序列产生一定数量的组合,因此可以表示的数字个数也是有限的。对于十进制数来说,如果长度有N位,那么我们可以用其表示10N个数字。同理,对于二进制数来说,如果长度有64位,则可以表示264个数字,大约是1800亿亿(18后面跟18个0)个数字,这个数量已经相当大了。

在过去计算机的内存容量要比现在小得多,因此人们一般会使用长度为8或16的位序列来表示数字。在这么小的范围内数字很容易溢出,即给定的位序列无法存储超过这个范围的数字。

而现在即便是个人计算机也会配置大量内存,因此我们使用64位数据块来存储数字也不是什么问题,也就是说在处理超大数字的时候也无需担心溢出。

但是在JavaScript中并不可以使用所有小于1800亿亿的数字。这块长度为64的位序列还要能够表示负数,所以需要有一位符号位用来表示数字的正负。还有一个需要我们关注的问题是如何表示非整数,为了实现该功能,还需要使用一些位来存储小数点的位置。因此,在JavaScript中实际可存储的数字范围是1900万亿(9后面跟15个0),这依旧是一个很大的数字。

使用小数点来表示分数。


 

对于过大或过小的数字来说,可以使用带e(即exponent,指数)的科学技术法来表示,并在e的后面紧跟该数的指数。


 

即2.998×108 = 299,800,000。

当计算小于前文当中提到的9000万亿的整数时,其计算结果会十分精确,不过在计算小数的时候精度却不高。正如(pi)无法使用有限个数的十进制数字表示一样,在使用64位来存储分数时也同样会丢失一些精度。虽说如此,但这类丢失精度只会在一些特殊情况下才会出现问题。因此我们需要注意在处理分数时,将其视为近似值,而非精确值。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.1 值
下一篇:1.2.1 算术
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站