double m;
int t,i;
m = 1.0* i /t;
如果沒有*1.0 精度就不對
我想請教一下,這個是不是跟強制型別轉換有關,如果沒有了*1.0,m就從double型別變成了int型別
初學萌新,請多執教
uj5u.com熱心網友回復:
m=(double)i/(double)t;也行
常量也有型別
1.0是double型
1.0f是float型
1是整形
1u是無符號整型
1L是長整型
1.0*和*1.0不是一回事!
m=1.0*i/t;
和
m=i/t*1.0;
不是一回事。
uj5u.com熱心網友回復:
1.0去乘其實就是告訴編譯器,這個運算按照浮點數的運算去處理,而不是整型數。m不會編程整型數,而是m=等號右邊是按照整型運算計算還是按照浮點數運算去計算的問題。
1.0默認是double型別。
uj5u.com熱心網友回復:
算數運算和關系運算,每個運算步驟都執行隱式的型別提升規則,但賦值運算子,把右側的結果強制轉換為左邊的型別,然后把值復制過去。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/270283.html
標籤:新手樂園
