本文目錄一覽:
- 1、java浮點型數據表示方法有幾種,各是什麼?
- 2、Java語言中的浮點型數據的float和double的單精度和雙精度到底是啥意思?
- 3、java中的基本數據類型有幾種
- 4、java 浮點數為什麼精度會丟失
- 5、Java中怎麼把浮點數轉變成整數只保留整數部分
- 6、java里的浮點數是什麼意思
java浮點型數據表示方法有幾種,各是什麼?
Java浮點型數據類型有float和double兩種,其中float是單精度浮點型,佔32位,其對應的封裝類為Float,double是雙精度浮點型,佔64位,其對應的封裝類為Double,關於Float類和Double類詳情請參考java api。
說明
數據類型所佔位數的範圍:
float表示數據範圍 3.4e-038~3.4e+038 ;
double表示數據範圍 1.7e-308~1.7e+308 ;
雙精度類型double比單精度類型float具有更高的精度,和更大的表示範圍,常常用於科學計算等高精度場合。
變數定義示例
float f = 123.456f; //指定變數f為float型
double d = 123.456; //指定變數d為double型,浮點數默認類型
Java語言中的浮點型數據的float和double的單精度和雙精度到底是啥意思?
主要有下面幾個區別,手冊上的,希望能幫到你
1、變數類型不同
float屬於單精度型浮點數據。
double屬於雙精度型浮點數據。
2、指數範圍不同
float的指數範圍為-127~128。
double而double的指數範圍為-1023~1024
3、表達式指數位不同
float的表達式為1bit(符號位)+8bits(指數位)+23bits(尾數位)
double的表達式為1bit(符號位)+ 11bits(指數位)+ 52bits(尾數位)
4、佔用內存空間不同
float佔4個位元組(32位)內存空間,其數值範圍為3.4E-38~3.4E+38。
double佔8 個位元組(64位)內存空間,其數值範圍為1.7E-308~1.7E+308。
5、有效位數不同
float只能提供七位有效數字。
double可提供16位有效數字。
java中的基本數據類型有幾種
四種八類:
基本數據類型
整數類型:
byte:位元組佔用 1位元組 8位,用來表達最小的數據單位,儲存數據長度為 正負 127;
short:位元組佔用 2位元組 16位,儲存數值長度為 -32768-32767
int:位元組佔用 4位元組 32位,最為常用的整數類型,儲存長度為,-2^31-1~2^31 (21 億)
long:位元組佔用 8位元組 64位,當到達int數值極限時使用,儲存長度為 看圖片:
浮點數類型:
float:單精度浮點型 32位 取值範圍 3.4e-38~3.4e-38
double:雙精度浮點型 64位 ,java中默認的浮點類型 取值範圍 1.7e-308~1.7e-308
字元類型:
char:16位 ,java字元使用Unicode編碼;
布爾類型
boolean : true 真 和 false 假
引用數據類型:
類 class
介面 interface
數組
java 浮點數為什麼精度會丟失
並不是java的浮點數精度會丟失,而是所有用二進位存儲中的浮點數都可能會精度丟失(部分特殊的小數數值可以精確表示),所以計算機中存儲的浮點數都存在精度丟失的風險,不過一邊這個丟失的精度對我們正常的使用不會構成影響。
小數在轉換為二進位時並不一定能用一個精確的二進位表示,大多數時候都是取的一個近似值,這就造成了精度的丟失。如果再用這個二進位進行計算,明顯計算結果的精度會進一步丟失。
舉個簡單的例子把0.1用二進位表示(小數與二進位轉換方法)
(1) 0.1 x 2 = 0.2 取整數位 0 得 0.0
(2) 0.2 x 2 = 0.4 取整數位 0 得 0.00
(3) 0.4 x 2 = 0.8 取整數位 0 得 0.000
(4) 0.8 x 2 = 1.6 取整數位 1 得 0.0001
(5) 0.6 x 2 = 0.2 取整數位 1 得 0.00011
(6) 0.2 x 2 = 0.4 取整數位 0 得 0.000110
(7) 0.4 x 2 = 0.8 取整數位 0 得 0.0001100
(8) 0.8 x 2 = 1.6 取整數位 1 得 0.00011001
(9) 0.6 x 2 = 1.2 取整數位 1 得 0.000110011
(n) …
得到一個無限循環的二進位小數 0.000110011…,沒辦法用一個精確的二進位表示0.1。而且計算機中存儲一個浮點數所用的位數也是有限的,所以只能選擇在某一個精度進行保存。
當然也有特殊的小數,比如0.25的二進位為0.01
附:代碼之謎(五)- 浮點數(誰偷了你的精度?)
Java中怎麼把浮點數轉變成整數只保留整數部分
兩種方式:
1、通過強制類型轉換
float a=1.1f;//定義一個浮點變數a
int b = (int)a;//這裡使用(int)方式對float進行強轉,結果為12、通過轉換為字元串,在截取整數部分
float a = 1.1f;//定義一個浮點變數a
String str = String.valueOf(a);//浮點變數a轉換為字元串str
int idx = str.lastIndexOf(“.”);//查找小數點的位置
String strNum = str.substring(0,idx);//截取從字元串開始到小數點位置的字元串,就是整數部分
int num = Integer.valueOf(strNum);//把整數部分通過Integer.valueof方法轉換為數字
java里的浮點數是什麼意思
float表示單精度浮點數在機內佔4個位元組,用32位二進位描述。
浮點數在機內用指數型式表示,分解為:數符,尾數,指數符,指數四部分。
數符佔1位二進位,表示數的正負。
指數符佔1位二進位,表示指數的正負。
尾數表示浮點數有效數字,0.xxxxxxx,但不存開頭的0和點
指數存指數的有效數字。
指數佔多少位,尾數佔多少位,由計算機系統決定。
可能是數符加尾數佔24位,指數符加指數佔8位 — float.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/285163.html