c ++上限值计算

时间:2014-04-24 09:55:47

标签: c++ rounding

我有一个双变量double dub1。如果它是15的整数倍,我想得到除法的结果(例如30/15 - > 2 ok)。如果它不是整数倍,我想将其四舍五入到较高值(例如20/15 - > 2 ok)。我应该如何处理第一部分。

int divres = dub1/15; //For the second part
divres++;  

2 个答案:

答案 0 :(得分:4)

使用<cmath>中的std::ceil功能:

int divres = static_cast<int>(std::ceil(dub1/15));

好的,如果没有ceil,您可以通过以下方式使用std::fmod

int divres = dub1/15;
if (std::fmod(dub1, 15) != 0) {
    divres++;
}

答案 1 :(得分:0)

int divres = dub1/15; //For the second part
if(dub1 - (15*divres) >.000001) // check to see if it is not equal
   divres++;