Округление двойных чисел в Objective-C - PullRequest
8 голосов
/ 12 мая 2011

Мне нужен код C для округления двойного значения до следующего наибольшего целого значения

Например, если у меня есть:

1.0 (double) должно быть 1 (int)
1.01 (double) должно быть 2 (int)
5.67 (double) должно быть 6 (int)
76.43 (double) должно быть 77 (int)

Есть ли решение?

Ответы [ 2 ]

30 голосов
/ 12 мая 2011

Используйте функцию ceil() из <math.h>:

#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);
0 голосов
/ 02 ноября 2012

Допустим, ваш номер с плавающей запятой nr. Нет встроенных функций:

float nr;
int temp;
if (nr % 10 > 0) {
    temp = nr++;
} else {
    temp = nr;
}
nr = temp;
...