今天要討論的是基本資料型別之間的轉換
先說數值型的轉換方式,分為兩種
1、直接轉換
先來說個例子:500毫公升的礦泉水與5公升的桶裝水,你將礦泉水瓶裡面的水倒進空的桶裝水桶裡面,是不是可以裝下沒有問題
這個就是直接轉換,小容量往大容量賦值
例如
int a = 100;
long b = a;
float c = 3.14f;
double d = c;
2、強制轉換
但是反過來,你將一整桶桶裝水灌進礦泉水瓶裡面,能裝完不會漏?不可能吧,肯定會溢位來,因為兩者之間的容量有著天壤之別。
那要怎麼強制轉換?
例如
long b = 10000l;
int a = (int)b;
float c = 3.14f;
int d = (int)c;//這個時候d為3,後面的0.14丟了
這個就是強制轉換,大容量往小容量賦值,這個時候肯定是只能轉一部分,也就是所謂的損失精度
要轉換,必要先知道哪個大哪個小吧
byte 1個位元組 2個位元組 4個位元組 4個位元組 8個位元組 8個位元組
什麼是4個位元組、8個位元組?就是在記憶體中開闢空間的大小,可以理解為容量,乙個杯子就只能裝300毫公升水,你可以裝200毫公升或者100毫公升,但是不可以超過300,這個就是容量限制,同理,1個int值是有最大值的,有容量限制的,超過了,只能換個容器,比如轉為long
錯誤的例子
float
b = 1f;
int
a =b;
long
b = 1;
int
a =b;
double
b = 1;
long
a =b;
那麼數值型與布林型如何轉換?
boolean
a =
true
;double
b =(
double
)a;
long
c =(
long
)a;
這個也是錯誤的,不能強轉,因為兩者不是同乙個東西,不可以直接轉換,只能說true是1,false是0。
字元型與數值型的轉換
字元轉數值:
string b =
"10";
long
c = long.
parselong
(b);
int
d = integer.
parseint
(b);
double
f = double.
parsedouble
(b);
數值轉字元:
int
a = 10;
string b = a+
"";
string e = string.
valueof
(a);
char轉string:
char
i =
'a';
string
j = i+
"";
string
k = character.
tostring
(i);
string轉char:
string l =
"abcdefg"
;
char
n = l.charat(5);
//從0開始,5代表字串中的第6個字元,即f
char
m = l.tochararray();
//返回乙個字元陣列
Java基本資料型別之間的轉換
我們在平時開發過程中經常會處理到不同型別直接相互轉換的情況,深入了解他們的關係十分重要。我們首先以byte型別為例 public class datatypechangetest public static void main string args 測試基本資料型別與byte之間轉換關係 1.by...
Java 基本資料型別之間的轉換
一 資料型別 1.布林型 boolean true false,不可以以0或非0的數字代替 不能進行資料之間的轉換。2.整數型別 整型預設為int型,而long型別表示的範圍要超出int表數範圍,所以,宣告long型別時,常量後要加l l 如 long l1 12345678 數值在int範圍之內,...
java 的基本資料型別之間的轉換
1 所佔位數少的可以轉換為所佔位數多的型別,比如byte轉char,char轉int等 2 而所佔位數多的轉為所佔位數少的預設情況下不能實現轉換,需要強制型別轉換,這樣可能會丟失一部分原始資料 3 此外,boolean型別資料和其他七種不能互相轉換。which lines of the follow...