1
A
回答
1
這裏一個可能的解決方案:
#include<iostream>
int toNearest5(int i) {
int r = i%5, o = 0;
if(r) {
o = r/5. >= .5 ? 5 : 0;
}
return (i-r+o);
}
int main() {
using namespace std;
cout << toNearest5(8) << endl;
cout << toNearest5(12) << endl;
cout << toNearest5(13) << endl;
cout << toNearest5(15) << endl;
cout << toNearest5(17) << endl;
}
的想法是讓數以及所一輪的5最低倍數(您可以通過removi做NG其餘的),那就是:
int remainder = i%5;
int rounded = i - remainder;
現在,您可以檢查剩餘時間和增加5到圓號碼,如果餘數大於2.5,否則加0
爲了檢驗它,我把餘數除以5(它的上限),這樣得到一個[0,1]中的數字[並用0.5檢查它知道如何舍入原始數字。
它遵循相同功能的更緊湊的版本:
int toNearest5(int i) {
int j = i%5;
return (i - j + (j/5. >= .5 ? 5 : 0));
}
我不知道,如果Qt框架提供了類似的東西開箱即用,但它是一個一個線功能的問題,你可以輕鬆地爲自己寫。
+0
它工作很好,現在我必須明白你在做什麼 – MajorC
2
舍入C++到最接近的整數通常是通過做:
static_cast<int>(number + 0.5);
現在,它送到未來5年,我會帶它到系統中,我們可以把這個四捨五入規則(即5 - > 1,6 - > 1.2),然後將其帶回到真正爲5的系統中:
int roundToNearestFive(int number)
{
return static_cast<int>(number/5. + .5) * 5;
}
我覺得這個配方最簡單。
相關問題
- 1. MySQL - 圓秒到最近的一分鐘
- 2. 如何「修剪」一個arrayList只有5個最近的值? :
- 3. 如何用最近的鼠標位置重繪一個橢圓
- 4. 從一個點找到最接近的圓
- 5. D3js找到圓上最近的點
- 6. 圓整數到最接近0.2的PHP
- 7. 找到一個最接近java平均值的int值?
- 8. 圓了最近的0.10
- 9. 計算哪個繪製的圓是最接近另一個的
- 10. 計算最接近2個圓的交點的圓的座標
- 11. MySQL湊到最接近的5美分
- 12. 回合的NSDate到最近5分鐘
- 13. 圓形浮動到最接近的四分之一的Ruby
- 14. 在5X表中最接近的一個Int?
- 15. 最近/最近一個月的帖子
- 16. 無法從long轉換爲int,爲什麼我無法將這個double使用Math.round圓整到最近的int
- 17. 在SQL Server中舍入到最近的5個
- 18. 我如何繞到最近的十個?
- 19. 如何使用C#四捨五入到最接近的.5#
- 20. 如何將數字四捨五入到最接近的.5?
- 21. winforms找到兩個橢圓之間的最近座標
- 22. 列出最近5個最近的文件,並將它們移動到另一個目錄
- 23. 如何找到我附近的最近的10個位置
- 24. 如何查詢獲取最近5個月的記錄?
- 25. 輪的5最近倍數在PHP
- 26. 如何找到最近的一個星期的任意日期?
- 27. 找到另一個點的最近點
- 28. 一輪到最近的5000
- 29. 如何顯示最近從wordpress網站到magento的5個帖子
- 30. Boost:有一個整數和一些特殊的int數組如何找到最接近你的數組?
[C++:舍入到最接近的數字倍數]的可能重複(http://stackoverflow.com/questions/3407012/c-rounding-up-to-the-nearest-multiple-of-a-號碼) – dtech