程式**:
var x;
document.write("僅顯示17位: ");
x=12345678901234567890;
document.write(x + "
");//
問題:輸出是:僅顯示17位: 12345678901234567000 為什麼呢?後三位都顯示為0??
答案:電腦是用有限的位數來表示某個數值的,不可能無限,否則多少記憶體都不夠用。既然位數有限,那麼就必然有數值的大小範圍,比如用32位(即4個位元組)來表示乙個整數,最大值就是2g-1(即21億多),最小值是-2g(即-21億多),超出這個範圍的數,就只能用浮點數來表示,浮點數是64位(8個位元組),採用的是m*10^n這樣的指數形式,其中n是指數,占用11位,m是尾數,占用52位,剩下的1位是符號位(用來表示正數或負數)。這樣的話電腦中只需儲存m和n就能任意表示乙個數值了。比如你所說的那個數,用浮點數來表示就是:
1.2345678901234567 * 10 ^ 19
其中19是指數,1.2345678901234567是尾數,那麼電腦上儲存的實際上就是19和12345678901234567這兩個整數。為什麼是12345678901234567而不是1234567890123456789呢?因為比12345678901234567再多一位數的話,就會超出52位所能表示的最大整數範圍了!所以電腦上最多就只能儲存到12345678901234567了,這就是為什麼最後的輸出結果為
12345678901234567000
同樣道理,1234567890123456789012345678901234567890 的顯示結果也只能是
1234567890123456700000000000000000000000
它的浮點數表示方式為
1.2345678901234567 * 10 ^ 39
也就是說尾數沒變,指數變為39了。
複習 JS基礎
以下算是經典的入門演算法吧,還記得第一次接觸時,感覺難得要命,現在來看,也不過如此!1 如果今天是星期六,那麼1000天後是星期幾?用一條語句計算出來。var a 1000 7 6 7 alert a 2 使用者輸入乙個三位數,用程式計算三位數字的和。比如 使用者輸入155,就彈出11 使用者輸入3...
整理 JS基礎
1.注釋 this is an in line comment.this is a multi line comment 2.資料型別 undefined 未定義 null 空 boolean 布林型 string 字串 symbol 符號 number 數字 and object 物件 變數宣告未...
python基礎整理複習五 爬蟲
1.request來獲取頁面內容 response.text 獲取url內容 soup 格式化的 response.text 獲取url下的頁面內容 defget page url response requests.get url soup beautifulsoup response.text,...