類型轉(zhuǎn)換時候,編譯器是如何具體實現(xiàn)的?
package a0319v01;
public class a0319v01 {
public static void main (String[] args){
int score1 = 82;
double score2 = score1;
int score3 = (int)score2;
System.out.println("score1 = "+score1);
System.out.println("score2 = "+score2);
System.out.println("score3 = "+score3);
}
}
運行結(jié)果顯示:
score1 = 82
score2 = 82.0
score3 = 82
請問,在編譯 double score2 = score1; 這條語句時候,編譯器是具體怎樣進行的?為何score1類型轉(zhuǎn)換后值沒變?而后面強制類型轉(zhuǎn)換 int score3 = (int)score2; 時候,score2內(nèi)存里的數(shù)是如何讓進行取舍,或者編譯時候如何取整的??
2015-12-15
double是有小數(shù)的,你原來的score1就是整數(shù)82,所以轉(zhuǎn)成double后取成了小數(shù)82.0,后面double強制轉(zhuǎn)換為int是直接將小數(shù)部分去掉,所以就又變回82了,而不是82.0