float賦值后加F和不加F,為何輸出不一樣
public class HelloWorld{
? ? public static void main(String[] args) {
int age1=24;
int age2=18;
int age3=36;
int age4=27;
int sum=age1+age2+age3+age4;
float avg=sum/4f;
int minus=age1-age2;
int newAge=--age1;
? ?System.out.println("年齡總和:"+sum);
? ? System.out.println("平均年齡:"+avg);
System.out.println("年齡差值:"+minus);
System.out.println("自減后的年齡:"+newAge);
}
}
輸出的avg=26.25, ?如果把float avg=sum/4f;中的f去掉結果就變成了 avg=26。 為什么會這樣
2019-04-12
2019-04-14
加了f相當于把分母轉換成浮點數,精度可以到達小數點后面,像是5/2.0=2.5
不加f相當于將兩個整數相除的結果轉換為float型,像是5/2=2,2*1.0=2.0
(個人想法,勿噴?。?/p>
但double就不一樣,加不加L都是2.0,不知道為什么
char加不加‘’結果是不一樣的
加了‘’后就是單個字符,單引號里是啥就是啥
不加‘’就變成了一個ASCII值了,打印出來的話是一個符號,控制臺可能識別不了,打印出一個帶問號的方框
char c=55;?
System.out.println("shuchu c="+c);
輸出 shuchu c=7 ?輸出的是55的ASCII值
char c='5';?
System.out.println("shuchu c="+c);
輸出 shuchu c=5 輸出的是字符5