Как округлить двойной до ближайшего меньшего int в C?

У меня есть двойной:

double d = 25.342;

Как преобразовать его в значение 25?

Если бы это было -12.46, я хотел бы получить -13.

Ответы

Ответ 1

int i = (int)floor(25.342);

Ответ 3

#include <math.h>
#include <stdio.h>

int main(){

    double d = 25.342;
    double e = -12.99;

    printf("%d\n",(int)round(d)); // 25
    printf("%d\n",(int)round(e)); // -13

    return 0;
}

Вы также можете посмотреть stdint.h

Ответ 4

Где x - ваш 25.342

int я = x >= 0? (int) (x + 0,5): (int) (x-0,5)