古詩詞大全網 - 成語查詢 - Java中double的取值範圍為1.79E308。E308是什麽意思?

Java中double的取值範圍為1.79E308。E308是什麽意思?

此說法正確:

這個是科學計數法,E308表示10的308次方.

1.79E308也就是1.79乘以10的308次方

關於位存儲:

比如1位,只能表示0和1,所以1位最大值1

比如2位,0到3,所以最大值3.

關於long:

long***64位其中1位是符號位正負,剩余63位,

表示最大數 2^63-1 =9223372036854775807

long用途:

十進制就有19位,如果妳的訂單低於19位就能使用long來存儲。

問題:

double為什麽表示的整數比long大,都是64位啊

原來double,把64位劃分了幾個 部分,

1、有符號位,指數位,尾數位,通過降低精確度存儲更大的數字。

2、尾數52位存儲具體數字,指數11位和小數點位置有關,符號位1位代表正負

3、如果整數,妳的數超過2^52,double就不精確了,開始舍棄精度

4、如果小數,小數點後邊的數超過2^52,double就不精確了,開始舍棄精度

double的應用:

只是提供了小數支持,小數精確到16位左右。也能存儲整數。

但是整數精確只能表示2^52以內的數,超過就不精確了。

所以19位以內的整數可以用long,16以內的小數和整數用double