1樓:自由的菜鳥
一句話,+0.5就是為了實現四捨五入,因為強制轉換double為int是,小數部分全部舍掉了。於是+0.5使其四捨五入,減小誤差
2樓:匿名使用者
v[i]*100難道不是整數嗎?
v[i]是double型,v[i]*100就不會是整型的,除非你在前面加上強制轉換(int).
for(i=0;i>s;
str.push_back(s);
v.push_back(deal(s)+(double)i/100); //
} //不知道你的n是多大的,假設》50
//當你輸入的是12時,str先獲取到12//那麼,當i=50時,v.push_bach(...)獲取到的就是12.5
for(i=0;i
//加上0.5後,達到了數學上的四捨五入的效果.
3樓:匿名使用者
j=(int)(v[i]*100+0.5)%100實現了小數點後1位的四捨五入功能,如果v[i]=0.124
按照j=(int)(v[i]*100)%100=12按照j=(int)(v[i]*100+0.5)%100=12如果v[i]=0.125
按照j=(int)(v[i]*100)%100=12按照j=(int)(v[i]*100+0.5)%100=13
4樓:匿名使用者
當double強轉成int時,會把小數刪除.如15.3 15.9 都等於15
所以+0.5是為了四捨五入,這時
int(15.3+0.5) = int(15.8) = 15而int(15.9+0.5) = int(16.4) = 16;
實現了四捨五入
當14.123456*100,是整數嗎?double後的小數位有好多,不至2位!
5樓:匿名使用者
貌似強制轉換的時候會四捨五入.加個0.5是為了準確性!!!
但是我在vc6.0下測試了一下,那倆條語句好像是沒有區別的.它們的測試值完全一樣的!
你可以試一下具體的使用.
PLC一條程式設計語句的疑問
1t0 和dt0的區別 是16位和32位的區別嗎?2這個語句的意識是x1接通 然後設定後面的引數 t0 k1 k1 d352 k1 用於以後的程式?3這2條句子裡有很多相同的引數,我不知為什麼要這樣設定?解疑 1,t0和dto是寫入所指引數到特殊模組,與之類似的還有from和dfrom,是由指定的特...
求一條SQL語句如何寫
update pmm.student set name 張三 where name is null 取空的時候is null就可以了,name 和 name null 取的都不是空。謝謝。update from pmm.student set name 張三 where name is null 在...
linux shell的sed分析(只有一條)
給migrate target賦值,賦值的內容是target node變數中匹配不是以.開頭的變數到下一個.前的字元後追加ocf reskey migration network suffix的值 例1target node abc ocf reskey migration network suff...