double avg=sum/4d 或者float avg=sum/4f 后面加了字母d或f的,運(yùn)算出來(lái)是26.25 而double avg=sum/4 或者float avg=sum/4 這樣就只是26.0 這是為什么額,后面加字母是控制輸出精度的嘛?
double avg=sum/4d ? ?或者float avg=sum/4f ? 后面加了字母d或f的,運(yùn)算出來(lái)是26.25 而double avg=sum/4 ? 或者float avg=sum/4 ? ?這樣就只是26.0 ? ?這是為什么額,后面加字母是控制輸出精度的嘛?
2016-10-09
sum是整型,在計(jì)算 double avg =sum/4 時(shí) sum為int或long,除以4被轉(zhuǎn)型為int/long類型,然后被賦值給精度更高的double類型,然而整型是沒(méi)有浮點(diǎn)部分的,因此小數(shù)部分在后面計(jì)算時(shí)就已經(jīng)被丟棄了,只保留了整數(shù)部分并賦值給double
2016-10-09
double avg=sum/4d ? ?或者float avg=sum/4f ? 后面加了字母d或f的,運(yùn)算出來(lái)是26.25
????? 是因?yàn)閟um是int/long型 ,4d/4f是浮點(diǎn)型,運(yùn)算后的類型是浮點(diǎn)型
而double avg=sum/4 ? 或者float avg=sum/4 ? ?這樣就只是26.0 ??
??? 是因?yàn)閟um是int/long型,4是int型,運(yùn)算后還是int型,然后被賦值給浮點(diǎn)型
這里面牽涉到一個(gè)不同類型運(yùn)算的時(shí)候向大容量類型轉(zhuǎn)換byte、short、char<int<long<float<double;
2016-10-09
因?yàn)?本身是int型,如果不加d或f,就會(huì)當(dāng)做整數(shù)相除處理,再賦值給double或float類型的變量。