Floor в си
Автор Макар марков задал вопрос в разделе Другие языки и технологии
язык СИ. НУЖНО ОКРУГЛИТЬ ЧИСЛО В БОЛЬШУЮ СТОРОНУ БЕЗ ФУНКЦИИ FLOOR ЗАРАНЕЕ СПАСИБО и получил лучший ответ
Ответ от Николай Веселуха[гуру]
#include <stdio.h> #include <conio.h> float approximate_float_up(float); // округляет float до целого в большую сторону double approximate_double_up(double); // округляет double до целого в большую сторону float approximate_float_down(float); // округляет float до целого в меньшую сторону double approximate_double_down(double); // округляет double до целого в меньшую сторону float approximate_float_mantissa(float); // округляет float до целого в большую сторону если мантисса >= 0.5 и наоборот double approximate_double_mantissa(double); // округляет double до целого в большую сторону если мантисса >= 0.5 и наоборот int main() { float x_float = 1.00000001f; float y_float = 1.0000001f; double x_double = 1.0000000000000001; double y_double = 1.000000000000001; printf("x-float = %.8f\\n", approximate_float_up(x_float)); printf("y-float = %.8f\\n", approximate_float_up(y_float)); printf("x-double = %.18Lf\\n", approximate_double_up(x_double)); printf("y-double = %.18Lf\\n\\n", approximate_double_up(y_double)); printf("x-float = %.8f\\n", approximate_float_down(1.99f)); printf("x-double = %.18Lf\\n\\n", approximate_double_down(1.99)); printf("x-float = %.8f\\n", approximate_float_mantissa(1.499999f)); printf("y-float = %.8f\\n", approximate_float_mantissa(1.5f)); printf("x-double = %.18Lf\\n", approximate_double_mantissa(1.499999)); printf("y-double = %.18Lf\\n", approximate_double_mantissa(1.5)); _getch(); return 0; } float approximate_float_up(float num) { int temp = (int)num; float rest = num - temp; if (rest < 0) rest *= -1; if (rest < 1e-7) num = (float)temp; else num = (float)temp + 1; return num; } double approximate_double_up(double num) { int temp = (int)num; double rest = num - temp; if (rest < 0) rest *= -1; if (rest < 1e-15) (double)num = temp; else num = (double)temp + 1; return num; } float approximate_float_down(float num) { return (float)(int)num; } double approximate_double_down(double num) { return (double)(int)num; } float approximate_float_mantissa(float num) { int temp = (int)num; float rest = (num - temp) * 10; int val = (int)rest; if (val >= 5) ++temp; return (float)temp; } double approximate_double_mantissa(double num) { int temp = (int)num; double rest = (num - temp) * 10; int val = (int)rest; if (val >= 5) ++temp; return (double)temp; }
Стандартная функция ceil
В бОльшую по модулю или просто в бОльшую? Положительное число можно округлить, например, так: ((int) x)+1, если дробная часть числа х не равна нулю. А если равна, то прибавлять единицу не нужно.
какие косметические компании существуют вообще в России? ну продолжите список: 1. Avon 2. Орифлейм А дальше???
СПИСОК СЕТЕВЫХ КОМПАНИЙ РАБОТАЮЩИХ НА РЫНКЕ РОССИИ
Список МЛМ компаний
***
подробнее...
что такое линия розы? Это замок Rosline в шотландии или нет?
Линия Розы — мистическое название меридиана, имеющего научное определение “нулевой меридиан”. Этот
подробнее...
какие грибы светятся в темноте?
СВЕТЯЩИЕСЯ ГРИБЫ
- не особенно многочисленны. Они различны по организации и по силе
подробнее...
Поиграем? С вас - названия групп, в которых есть цифры. Кто больше?
МП44
50 cent
44
1,5 кг отличного пюре
30 дней февраля
Т-34
7.62
подробнее...
Бриллиант, по сравнению с тобой, тусклый камушек!
И я люблю тебя.
Ты - моё счастье, милый.
Пусть свет любви сильней сияет между строк.
подробнее...
как услышать своего ангела хранителя? и попросить его о помощи.
мысленно вопрос, мысленно ответ...
Источник: сайт "Восстановление природного дара
подробнее...
JavaScript!? Как проверить число на четность и как сгенерировать случайное число???
на четность: , если при делении на 2 остаток 0, значит четное. Или если последний бит числа равен
подробнее...
Мне нужно краткое сообщение! Помогите!
Используемые части: кора, в народной медицине также плоды.
Аптечное наименование: кора
подробнее...
А... Чтобы любить,... не надо слов... хватает тепла лишь тока тепла???)))
Друг в какое это Ты там влюбился а) )
Gaspar ft Птаха (feat SD) – Надо любить 0
Когда
подробнее...
Как называется эта оберточная бумага???
♥♥♥Сизаль ♥♥♥
Упаковка из сизали. Для стеблей
подробнее...
что такое форсайте куст ?
названа по имени английского ботаника Форсайта, поэтому иногда этот рано цветущий
подробнее...
Спецы подскажите, сколько покупать ламината (пачек, квадратных метров), чтобы застелить 4,8 кв. метра.
пачки разные бывают.. . но всё равно три покупать
подробнее...