Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Округление чисел массива до сотых(C++ Builder) (http://forum.oszone.net/showthread.php?t=247676)

KnightMrak 25-11-2012 15:17 2032500

Округление чисел массива до сотых(C++ Builder)
 
Доброго времени суток.
Помогите решить вот эту задачу:

Условие задания:

Создать подпрограмму-процедуру, входом которой является массив из 7-ми действительных чисел, а выходом - массив этих чисел, округленных до сотых.

Я пытался сделать через Memo1 в которое мы вводим цифры, а выводим в Memo2 с (FormatFloat("0,00",k));
При компилирование он мне вывел совсем другие числа(видимо индексы).
P.S.
Вводим в StringGrid1
Выводить нужно в StringGrid2

Заранее благодарен за помощь.

lxa85 25-11-2012 19:02 2032627

Цитата:

Цитата KnightMrak
Я пытался сделать »

Можно увидеть эту попытку?

AMDBulldozer 25-11-2012 23:58 2032815

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


Время: 11:48.

Время: 11:48.
© OSzone.net 2001-