老師,我這樣為什么不行?
public class HelloWorld{
? ? public static void main(String[] args) {
double avg1=78.5;
int rise=5;
? ? ? ? int avg3=avg1;
int avg2=avg3+rise;
System.out.println("考試平均分:"+avg1);
System.out.println("調(diào)整后的平均分:"+avg2);
}
}
public class HelloWorld{
? ? public static void main(String[] args) {
double avg1=78.5;
int rise=5;
? ? ? ? int avg3=avg1;
int avg2=avg3+rise;
System.out.println("考試平均分:"+avg1);
System.out.println("調(diào)整后的平均分:"+avg2);
}
}
2015-07-13
舉報
2015-07-13
簡單的說,強制就是不計后果,可能會報錯,隱式就是java認為的合理范圍內(nèi),不會造成什么過錯
比如,int型轉(zhuǎn)成double為什么可以隱式呢,因為int型后面跟多少個0,都不會對數(shù)據(jù)有什么影響,但double型轉(zhuǎn)成int型時,小數(shù)點后的值就會沒掉,這個小數(shù)點后的值如果是錢,沒掉了要你自己負責(zé),因為你強制要轉(zhuǎn)的
2015-07-17
public class HelloWorld{
? ? public static void main(String[] args) {
double avg1=78.5;
int rise=5;
? ? ? ? int avg3=avg1;
int avg2=(int)avg3+rise;
System.out.println("考試平均分:"+avg1);
System.out.println("調(diào)整后的平均分:"+avg2);
}
}
改成這樣應(yīng)該就可以了吧?int 不包含double,但是可以強制double轉(zhuǎn)換int.
2015-07-13
原來我把double與int ?float的包含關(guān)系弄錯了
double為雙精度浮點數(shù),float為單精度浮點數(shù),int為整型。int可以穩(wěn)式轉(zhuǎn)換成float和double,float只能強制轉(zhuǎn)換成int,但是可以隱式轉(zhuǎn)換成double,double只能強制轉(zhuǎn)換成float和int。
但什么叫強制,什么叫隱式?