java數(shù)據(jù)類型有哪些? java中float和double是多少位浮點數(shù)?
java中float和double是多少位浮點數(shù)?在Java中,float是32位的,double是64位的。浮點和雙精度的范圍由索引中的位數(shù)決定。float的指數(shù)有8位,double的指數(shù)有11位。
java中float和double是多少位浮點數(shù)?
在Java中,float是32位的,double是64位的。浮點和雙精度的范圍由索引中的位數(shù)決定。float的指數(shù)有8位,double的指數(shù)有11位。分布如下:浮點:1位(符號位)8位(指數(shù)位)23位(尾位)雙:1位(符號位)11位(指數(shù)位)52位(尾位)。因此,float的指數(shù)范圍是-128~127,double的指數(shù)范圍是-1024~1023,索引數(shù)字被補碼除。浮動范圍為-2^128~2^127,即-3.40e 38~3.40e 38;雙精度范圍為-2^1024~2^1023,即-1.79e 308~1.79e 308。
float和double區(qū)別?
它們之間的主要區(qū)別如下:
01。內(nèi)存中的字節(jié)數(shù)不同
單精度浮點數(shù)占用內(nèi)存4字節(jié)
雙精度浮點數(shù)占用內(nèi)存8字節(jié)
02。有效位數(shù)不同
單精度浮點數(shù)占8位
雙精度浮點數(shù)占16位
03取值范圍
單精度浮點數(shù)范圍:-3.40e38~3.40e38
雙精度浮點數(shù)范圍:-1.79e308~-1.79e38308
04. 程序的處理速度是不同的
一般來說,CPU處理單精度浮點數(shù)的速度比處理雙精度浮點數(shù)的速度快
如果不聲明,默認(rèn)的十進制數(shù)是double類型,所以如果要使用float,必須強制它
例如:float a=1.3將編譯并報告一個錯誤,正確的書寫是float a=(float)1.3或float a=1.3f(f或f可以不區(qū)分大小寫)
注意:float是8位有效數(shù)字,第7位將被舍入
面試問題:
1。3*0.1==0.3在Java中返回什么?對還是錯?
False,因為浮點數(shù)不能精確表示,它將失去精度。
2. float f=3.4在Java中是否正確?
不正確。3.4是一個雙數(shù)。將double賦值給float是向下的轉(zhuǎn)換,會導(dǎo)致精度損失。因此,您需要強制轉(zhuǎn)換float f=(float)3.4或?qū)懭雈loat f=3.4f。