国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中的數(shù)值范圍介紹

2019-11-20 13:34:00
字體:
供稿:網(wǎng)友

JavaScript中所有的數(shù)字,無論是整數(shù)還是小數(shù),其類型均為Number。在程序內(nèi)部,Number類型的實(shí)質(zhì)是一個(gè)64位的浮點(diǎn)數(shù),這與Java中double類型的浮點(diǎn)數(shù)是一致的;因此,JavaScript中所有的數(shù)都是浮點(diǎn)數(shù)。遵循IEEE 754標(biāo)準(zhǔn)(浮點(diǎn)數(shù)算術(shù)標(biāo)準(zhǔn)),JavaScript所能表示的數(shù)值范圍為正負(fù)1.7976931348623157乘以10的308次方,其最小所能表示的小數(shù)為正負(fù)5乘以10的負(fù)324次方,這兩個(gè)邊界值可以分別通過訪問Number對象的MAX_VALUE屬性和MIN_VALUE屬性來獲取。

對于整數(shù),根據(jù)ECMAScript標(biāo)準(zhǔn)的要求(http://ecma262-5.com/ELS5_HTML.htm#Section_8.5),JavaScript能表示并進(jìn)行精確算術(shù)運(yùn)算的整數(shù)范圍為:正負(fù)2的53次方,也即從最小值-9007199254740992到最大值+9007199254740992之間的范圍;對于超過這個(gè)范圍的整數(shù),JavaScript依舊可以進(jìn)行運(yùn)算,但卻不保證運(yùn)算結(jié)果的精度。值得注意的是,對于整數(shù)的位運(yùn)算(比如移位等操作),JavaScript僅支持32位整型數(shù),也即從-2147483648到+2147483647之間的整數(shù)。

實(shí)驗(yàn)

顯示JavaScript的最大數(shù)的絕對值、最小小數(shù)的絕對值:

復(fù)制代碼 代碼如下:

console.log(Number.MAX_VALUE);
console.log(Number.MIN_VALUE);

顯示結(jié)果為1.7976931348623157e+308和5e-324。

對正負(fù)2的53次方范圍以外的整數(shù),JavaScript無法給出精確的計(jì)算結(jié)果:

復(fù)制代碼 代碼如下:

var a = 9007199254740992;
console.log(a+3);


正確的運(yùn)算結(jié)果應(yīng)該是9007199254740995,但JavaScript給出的計(jì)算結(jié)果卻是9007199254740996。嘗試改變計(jì)算公式后可以發(fā)現(xiàn),只要整數(shù)大于9007199254740992,這種計(jì)算結(jié)果的錯(cuò)誤將頻繁出現(xiàn)。如果說計(jì)算精度的偏差尚可接受的話,那么下面這個(gè)例子的后果就更嚴(yán)重了:


復(fù)制代碼 代碼如下:

var MAX_INT = 9007199254740992;
for (var i = MAX_INT; i < MAX_INT + 2; ++i) {
  // infinite loop
}


由于計(jì)算精度問題,上面的for語句將陷入死循環(huán)。

對于位運(yùn)算,JavaScript僅支持32位整型數(shù):


復(fù)制代碼 代碼如下:

var smallInt = 256;
var bigInt = 2200000000;
console.log(smallInt / 2);
console.log(smallInt >> 1);
console.log(bigInt / 2);
console.log(bigInt >> 1);


可以看到,對于32位以內(nèi)的整數(shù)(256),JavaScript可以進(jìn)行正確的位運(yùn)算,所得結(jié)果與除法運(yùn)算的結(jié)果一致(128)。而對于32位以外的整數(shù),JavaScript可以進(jìn)行正確的除法運(yùn)算(1100000000),但進(jìn)行位運(yùn)算后所得結(jié)果卻與正確結(jié)果相去甚遠(yuǎn)(-1047483648)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 炉霍县| 汕尾市| 定兴县| 长治市| 大兴区| 大城县| 许昌市| 乡宁县| 淳安县| 全南县| 新丰县| 紫金县| 夏津县| 松原市| 伊吾县| 静宁县| 通榆县| 鹤峰县| 尚义县| 昭苏县| 东光县| 太谷县| 阿坝| 东至县| 桐梓县| 灵武市| 彩票| 深水埗区| 军事| 安溪县| 栾川县| 宁阳县| 兴国县| 砀山县| 鄂托克前旗| 隆回县| 炉霍县| 随州市| 阳信县| 巴林左旗| 灵寿县|