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

StackOverflow https://stackoverflow.com/questions/1631547

  •  06-07-2019
  •  | 
  •  

Вопрос

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

double d = 25.342;

Как я могу преобразовать его в 25 ценить?

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

Это было полезно?

Решение

int i = (int)floor(25.342);

Другие советы

int i = (int)floor(25.342);

Обратите внимание, что это преобразует 12,99999 в 12.

Ссылка:

http://www.codecogs.com/reference/c/math.h/floor.php

Где x - это ваш 25,342

int i = x > = 0? (int) (x + 0.5): (int) (x-0.5)

#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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top