課程
/后端開發(fā)
/Java
/Java入門第一季(IDEA工具)
為什么float賦值要加f,double不用呢? ?不都是小數(shù)嗎 只不過精度不同
2016-03-13
源自:Java入門第一季(IDEA工具) 2-6
正在回答
JAVA是一種強類型語言,你在做賦值運算的時候其實等號兩邊的類型都是確定的,能賦值成功,要么兩邊類型一致,要么兩邊類型具備某種關系(繼承或者實現(xiàn)),要么編譯器通過上下文可以判定。比如:
byte?x?=?1;
1是個整數(shù)字面量,是int類型,這個值在byte類型的范圍之內(nèi),這個時候編譯器會幫你做類型轉(zhuǎn)換,只留下int類型8位,前面的0都去掉。而在JAVA中浮點類型的字面量類型默認是double,但是由于float類型和double類型在內(nèi)存中的二進制表現(xiàn)形式不同:一個8位;一個4位。編譯器在編譯的時候掃描到了一個25.6,在不帶F的情況下,它會判斷這是double類型,應該創(chuàng)建一個8個字節(jié)的空間來存放;帶上F,編譯器就會創(chuàng)建一個4字節(jié)的空間來存放。float不能像整形那樣有時會默認轉(zhuǎn)換,必須要確定類型,帶上F。
jackrabbit 提問者
不同之處有四處:
單精度浮點數(shù)(float)與雙精度浮點數(shù)(double)的區(qū)別如下:
(1)在內(nèi)存中占有的字節(jié)數(shù)不同
單精度浮點數(shù)在機內(nèi)占4個字節(jié)
雙精度浮點數(shù)在機內(nèi)占8個字節(jié)
(2)有效數(shù)字位數(shù)不同
單精度浮點數(shù)有效數(shù)字8位
雙精度浮點數(shù)有效數(shù)字16位
(3)所能表示數(shù)的范圍不同
單精度浮點的表示范圍:-3.40E+38 ~ +3.40E+38
雙精度浮點的表示范圍:-1.79E+308 ~ +1.79E+308
(4)在程序中處理速度不同一般來說,CPU處理單精度浮點數(shù)的速度比處理雙精度浮點數(shù)快
至于要加F是因為就是這么規(guī)定的……如果不加F的話他會認為你是用的Double型……
qq_緐華丗堺沁透誐白勺錑眸_0 回復 jackrabbit 提問者
舉報
0基礎萌新入門第一課,從Java環(huán)境搭建、工具使用、基礎語法開始
1 回答double是雙精度,float是單精度,為什么不用float、
2 回答只有float要在賦值時在數(shù)值后加字母嗎?double不需要?
2 回答float賦值為什么要加f捏
2 回答float賦值后加F和不加F,為何輸出不一樣
2 回答為什么只能用double而不能用float?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2016-03-13
JAVA是一種強類型語言,你在做賦值運算的時候其實等號兩邊的類型都是確定的,能賦值成功,要么兩邊類型一致,要么兩邊類型具備某種關系(繼承或者實現(xiàn)),要么編譯器通過上下文可以判定。比如:
byte?x?=?1;
1是個整數(shù)字面量,是int類型,這個值在byte類型的范圍之內(nèi),這個時候編譯器會幫你做類型轉(zhuǎn)換,只留下int類型8位,前面的0都去掉。
而在JAVA中浮點類型的字面量類型默認是double,但是由于float類型和double類型在內(nèi)存中的二進制表現(xiàn)形式不同:一個8位;一個4位。編譯器在編譯的時候掃描到了一個25.6,在不帶F的情況下,它會判斷這是double類型,應該創(chuàng)建一個8個字節(jié)的空間來存放;帶上F,編譯器就會創(chuàng)建一個4字節(jié)的空間來存放。float不能像整形那樣有時會默認轉(zhuǎn)換,必須要確定類型,帶上F。
2016-03-13
不同之處有四處:
單精度浮點數(shù)(float)與雙精度浮點數(shù)(double)的區(qū)別如下:
(1)在內(nèi)存中占有的字節(jié)數(shù)不同
單精度浮點數(shù)在機內(nèi)占4個字節(jié)
雙精度浮點數(shù)在機內(nèi)占8個字節(jié)
(2)有效數(shù)字位數(shù)不同
單精度浮點數(shù)有效數(shù)字8位
雙精度浮點數(shù)有效數(shù)字16位
(3)所能表示數(shù)的范圍不同
單精度浮點的表示范圍:-3.40E+38 ~ +3.40E+38
雙精度浮點的表示范圍:-1.79E+308 ~ +1.79E+308
(4)在程序中處理速度不同
一般來說,CPU處理單精度浮點數(shù)的速度比處理雙精度浮點數(shù)快
至于要加F是因為就是這么規(guī)定的……如果不加F的話他會認為你是用的Double型……