回答
#include <math.h>
ceil(3.0/2); //2.0
注意,一個操作數應該是雙(或浮動),因爲3/2給你1
你確定'2/3.0' =='2.0'嗎? –
對不起,謝謝你的評論:P – Lombo
int x= ceil((float)3/2);
爲了圓不使用的功能,只需添加除數的一半在你分裂之前。 如果除數是一個常量,編譯器會很好地優化代碼。
int number = 3;
int divisor = 2;
int result = (number + (divisor+1)/2)/divisor;
如果你只是有興趣除以2,那麼就拿(n + 1)/ 2來保持整數運算。例如,(3 + 1)/ 2給出2.對於較大數x,使用x-1。例如,(3 + 7)/ 8 = 1,3除以8.
對於一般情況,你正在尋找天花板功能 - ceil。 http://www.elook.org/programming/c/ceil.html
int i = 3;
int j = 2;
int k = (i + j - 1)/j;
int x = 3.0/2 + 0.5;
OP是要求上限函數,而不是圓函數。我也想到了這一點,直到我意識到他總是希望下一個最大的整數,而不管這個值是多少。 –
啊。這對我來說並不完全清楚。他確實使用了「四捨五入到」這個詞:s – wilhelmtell
(如果有資格作爲線程巫術,請通知我會刪除此)
:快速谷歌搜索「數學小區C」在結果的頂部給這個頁面返回向上舍入商的一種快速方法是將除數加上除數,然後除。
int ceil_div(int dividend, int divisor) {
return (dividend + divisor - 1)/divisor;
}
或替代,
int ceil_div(int dividend, int divisor) {
return (dividend - 1)/divisor + 1;
}
必然地,你會從3減1,除以2,加入1
我會試着解釋爲什麼這個工程工作。如果股息和除數均爲浮動,則截尾整數當量(股息/除數)的將等於商的天花板如果除數完全分割被除數,或者少一個,如果它並沒有完全劃分股息。通過減1,我們保證新的股息,股息 - 1,除以除數,將始終返回小於浮點商的上限值。
現在剩下的就是給這個商增加1,順便說一下,它是floor((float)dividend /(float)divisor)。
在處理使用地形或歐幾里德算術*進行整數除法的語言中處理正數*時,更容易的方法是否定分紅和結果(即x/y四捨五入是 - (( - x)// y)不幸的是,很多語言實現了不太有用的truncate-to-zero整數除法,這種技術不適用於這些。 – supercat
- 1. 答案是:6÷2(1 + 2)=?
- 2. apache drill執行udf 2次,答案不是我想要的
- 3. 爲什麼我們除以2 getContentSize?
- 4. 可以被2整除:Python
- 5. 如果C6/2小於0.5,那麼E6將0.5否則答案是C6/2
- 6. 對於C++整數,1除以2可靠等於0,而3/2 = 1,5/2 = 2等。
- 7. 除以2個ReportItems
- 8. 我想使用NumPy/SciPy。我應該使用Python 2還是3?
- 9. C程序找到所有素數因子。例如:24將有2 2 2 3作爲答案
- 10. 無限精度整數:除以2
- 11. 爲什麼我們不使用2-3或2-3-4-5樹?
- 12. 爲什麼php 016除以2回答7?
- 13. 查找變量是否被2整除
- 14. 檢查數被2整除,如果是,打印數量
- 15. 我想不通爲什麼我會得到結果2
- 16. 打印可被2整除但不是3的數字?
- 17. 如何顯示答案一旦答案超過2位小數
- 18. 數組2的OCaml zip元素2除以2
- 19. 如何刪除IndexOutOfBoundsException:索引2無效,大小爲2 ..當我單擊項目
- 20. 我想從Zend 2內部訪問doctrine 2 DBAL以獲取原生sql查詢
- 21. 查找div除以2
- 22. Android studio layout除以2
- 23. 找N!除以n^2
- 24. Android - 1除以2 = 0
- 25. 我想從ZendFrameWork 2中刪除Required和Form Validation
- 26. 2浮動權元素複雜clearfix,我只想清除一個
- 27. 刪除文件,如果它崩潰我的應用程序(2)
- 28. 刪除行2
- 29. 刪除類2
- 30. 爲什麼要將y值除以2
本質上是SO 2422712的副本(http://stackoverflow.com/questions/2422712/c-rounding-number-up)。當然,這個問題提到了浮點數,但迄今爲止的答案也是如此。 –