3
A
回答
3
int nearest = 5;
int result = (input+nearest/2)/nearest*nearest;
1
實際上您根本不需要Boost,只需包含在C++庫中的C庫即可。具體來說,您需要包括CMATH頭:
圓了一個數字:小區():http://www.cplusplus.com/reference/clibrary/cmath/ceil/
回合下來了一些:地板():http://www.cplusplus.com/reference/clibrary/cmath/floor/
你可以寫你自己的回合函數,那麼:
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <string>
#include <utility>
double roundFloat(double x)
{
double base = floor(x);
if (x > (base + 0.5))
return ceil(x);
else return base;
}
int main()
{
std::string strInput;
double input;
printf("Type a number: ");
std::getline(std::cin, strInput);
input = std::atof(strInput.c_str());
printf("\nRounded value is: %7.2f\n", roundFloat(input));
return EXIT_SUCCESS;
}
4
您可以使用C99 lround
可用。
#include <cmath>
#include <iostream>
int main() {
cout << lround(1.4) << "\n";
cout << lround(1.5) << "\n";
cout << lround(1.6) << "\n";
}
(輸出1,2,2)。
檢查您的編譯器文檔是否需要啓用C99支持和/或如何啓用C99支持。
3
例如:
#include <boost/math/special_functions/round.hpp>
#include <iostream>
#include <ostream>
using namespace std;
int main()
{
using boost::math::lround;
cout << lround(0.0) << endl;
cout << lround(0.4) << endl;
cout << lround(0.5) << endl;
cout << lround(0.6) << endl;
cout << lround(-0.4) << endl;
cout << lround(-0.5) << endl;
cout << lround(-0.6) << endl;
}
輸出是:
0
0
1
1
0
-1
-1
相關問題
- 1. C# - 舍入到最近的整數
- 2. 在Silverlight中將數字舍入到最接近的百分數
- 3. 在django模板中將數字舍入到最接近的1
- 4. 舍入到最接近的整數PHP
- 5. 如何使用C#四捨五入到最接近的.5#
- 6. 將數字舍入到R中的最接近的10
- 7. 在SQL中舍入到最接近的奇數整數
- 8. 四捨五入到C的1/16的最接近倍數
- 9. 舍入小數到最近的第五C#
- 10. 在VBA中舍入到最接近的較大整數
- 11. 在SQL UPDATE中將值舍入到最接近的整數
- 12. 在Java中將雙精度舍入到最接近的整數?
- 13. 四捨五入到最近的年份
- 14. 舍入到最接近的X
- 15. 舍入到最近的,定層
- 16. 舍入到最接近的多個
- 17. 舍入到最接近的100
- 18. 四捨五入到最接近的數字紅寶石
- 19. 舍入到最接近的指定數字(十進制)
- 20. 如何將數字四捨五入到最接近的.5?
- 21. 將數字四捨五入到最接近的十位
- 22. 四捨五入到最接近的數字
- 23. 四捨五入到最接近的下一個數字
- 24. 將浮點數舍入到ruby中最接近的整數
- 25. 在目標C/Cocoa Touch中向下舍入到最接近的0.5浮點數
- 26. 如何使比例四捨五入到#的最接近倍數?
- 27. 四捨五入到最接近
- 28. 在Excel中,如何四捨五入到最近的斐波那契數字
- 29. 如何在SQL中將日期數字舍入到最近的月份?
- 30. 使用PHP和MySQL將DateTime值舍入到最近的小時
什麼是 「最近號碼」? – adf88 2010-07-18 11:28:24