Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 2029
Благодарности: 704

Профиль | Отправить PM | Цитировать


KnightMrak, задание сформулировано не совсем полно. Каков может быть диапазон исходных вещественных чисел?
Сейчас поясню, почему это имеет значение.
1-ый случай: умножаем исходное число на 100.0 (вещественное, чтобы избежать лишнего преобразования типов, хотя умный компилятор сделает это сам). Преобразуем число в целое отсечением дробной части (можем предварительно прибавить 0.005, чтобы округление производилось в сторону с минимальной погрешностью. Или вычесть, если число отрицательное). Делим полученное целое на 100.0 вещественное - дело сделано.
Но таким образом можно округлять только небольшие числа. Не выходящие (после умножения на 100) за пределы представления целого числа заданной разрядности с учетом наличия или отсутствия знака.
2-ой случай: если Вы не хотите накладывать ограничения на величину исходного вещественного числа, его необходимо предварительно разделить на целую и дробную части. К примеру, функцией modf. Целая часть остается неизменной, дробная округляется до сотых описанным выше способом. Потом целая и дробная части складываются.
Главное, чтобы такая функция возвращала целую часть исходного числа как указатель на вещественную переменную. Если указатель будет на целое, большого выигрыша от её использования Вы не получите.

-------
Господа! Убедительная просьба не обращаться за консультациями в ЛС. Поверьте, создать ветку в соответствующем разделе форума гораздо эффективнее.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:58, 25-11-2012 | #3