Как округлить двойной до ближайшего меньшего int в C? У меня есть двойной: double d = 25.342; Как преобразовать его в значение 25? Если бы это было -12.46, я хотел бы получить -13. Ответ 1 int i = (int)floor(25.342); Ответ 2 int i = (int)floor(25.342); Обратите внимание, что это будет конвертировать от 12.99999 до 12. Ref: http://www.codecogs.com/reference/c/math.h/floor.php Ответ 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)
Ответ 2 int i = (int)floor(25.342); Обратите внимание, что это будет конвертировать от 12.99999 до 12. Ref: http://www.codecogs.com/reference/c/math.h/floor.php
Ответ 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