我需要C代码将double值四舍五入到下一个最大整数值。
例如,如果我有:
1.0 (double)
必须是1 (int)
1.01 (double)
必须2 (int)
5.67 (double)
必须6 (int)
76.43 (double)
必须77 (int)
有解决方案吗?
答案 0 :(得分:30)
使用<math.h>
中的ceil()
功能:
#include <math.h>
double x = 1.01; // x = 1.01
double y = ceil(x); // y = 2.0
int i = (int)y; // i = 2
或更简洁,如果你只想要int结果:
int i = (int)ceil(x);
答案 1 :(得分:-1)
假设您的浮点数为nr
。
没有内置函数:
float nr;
int temp;
if (nr % 10 > 0) {
temp = nr++;
} else {
temp = nr;
}
nr = temp;