Форум: "Прочее";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
ВнизDelphi_округление чисел Найти похожие ветки
← →
mary (2008-05-19 16:47) [0]Добрый день! Подскажите, пожалуйста, мне нужно в Memo в столбец вынести числа, которые до этого предварительно рассчитываются специальными процедурами. Только по умолчанию, при выводе у них дико много знаков после запятой. Мне надо бы округлить. Round и RoundTo почему-то не помогают достичь желаемого результата :( Была бы очень благодрарна за совет!!
← →
@!!ex © (2008-05-19 16:48) [1]IntToStr(Round(Value)) Не работает? :)
И как же так?
← →
Style © (2008-05-19 16:49) [2]FormatFloat ?
← →
TIF © (2008-05-19 16:50) [3]Код в студию. Нужно глянуть, как ты это пытаешься делать с Roundом
← →
mary (2008-05-19 16:51) [4]Так до целого значения округляет, а мне нужно где-то до 5 знаков после запятой..
← →
Style © (2008-05-19 16:53) [5]Memo1.Lines.Add(
FormatFloat("0.#####", Value)
);
← →
@!!ex © (2008-05-19 16:56) [6]> [4] mary (19.05.08 16:51)
Round(Value*10000)/10000;
← →
mary (2008-05-19 16:58) [7]Мой код вот:
memo1.Lines[0]:=("z* = " + FloatToStr(RoundTo(z1[1], -5)));
memo1.Lines[1]:=("Ck = " + FloatToStr(RoundTo(z1[2], -5)));
for j:=2 to n do
memo1.Lines[j]:=(" "+ FloatToStr(RoundTo(z1[j+1], -5)));
← →
Style © (2008-05-19 17:02) [8]
const
Fmt = "0.#####";
begin
for j:=2 to n do
memo1.Lines[j] := " "+ FormatFloat(Fmt, z1[j+1]);
← →
mary (2008-05-19 17:07) [9]Ооооооо!!!!!! ОГРОМЕНОЕ ВСЕМ СПАСИБО!!!!!!!! Всё теперь ОК!!!! :)))))))
← →
Zeqfreed © (2008-05-19 18:05) [10]> @!!ex © (19.05.08 16:56) [6]
Зачем так вообще делать?
← →
palva © (2008-05-19 18:12) [11]Еще есть функция RoundTo, позволяющая округлять до нужного количества цифр.
← →
@!!ex © (2008-05-19 18:13) [12]> [10] Zeqfreed © (19.05.08 18:05)
> > @!!ex © (19.05.08 16:56) [6]
>
> Зачем так вообще делать?
ShowMessage(FloatToStr(1.23456789)+" "+FloatToStr(round(1.23456789*10000)/10000));
Запусти и удивись.
← →
@!!ex © (2008-05-19 18:21) [13]> [10] Zeqfreed © (19.05.08 18:05)
А потом посмотри как работает RoundTo и удивись еще раз.
← →
Zeqfreed © (2008-05-19 18:29) [14]> @!!ex © (19.05.08 18:13) [12]
Запустил. Не удивлен.
← →
palva © (2008-05-19 18:33) [15]Что-то не увидел разницы:
{$APPTYPE CONSOLE}
uses Math;
var
V: Double = 1.23456789;
begin
WriteLn(RoundTo(V, -4)); // 1.23460000000000E+0000
WriteLn(Round(V*10000)/10000); // 1.23460000000000E+0000
end.
← →
Zeqfreed © (2008-05-19 18:34) [16]> @!!ex © (19.05.08 18:21) [13]
Тебе когда нужно огранизовать цикл, как поступаешь?for i := 0 to Count - 1 do . . .
илиi := 0;
label:
. . .
Inc(i);
if (i < Count) then goto label;
?
← →
@!!ex © (2008-05-19 18:34) [17]> [15] palva © (19.05.08 18:33)
А ее и нет.
RoundTo делает один в один тоже самое, что я написал в [6]. Только ему еще число 10 в степень указанную возводить приходится, и переменные лишние хранить.
← →
@!!ex © (2008-05-19 18:36) [18]> [16] Zeqfreed © (19.05.08 18:34)
не удачная метафора.
Использовать RoundTo или деление - по количеству кода и понятности разницы нет(про понятность можете поспорить, но помойму так).
А использование Label - увеличивает количество строк -> ухудшает читабельность.
← →
Zeqfreed © (2008-05-19 19:02) [19]> @!!ex © (19.05.08 18:36) [18]
Ну да, одинаково по понятности. Ну, пускай по-твоему будет :) Особенно весело потом будет исправлять это во всех местах если нужно будет изменить логику округления (например, придумают более точный алгоритм округления).
Вы уж определитесь как ты ко мне обращаешься ;)
← →
@!!ex © (2008-05-19 19:32) [20]> Вы уж определитесь как ты ко мне обращаешься ;)
Зависит от контекста.
Я не спорю, что RoundTo возможно где то и предпочтительней. А может и нет.
Мне просто непонятен наезд в [10].
← →
Zeqfreed © (2008-05-19 20:05) [21]> @!!ex © (19.05.08 19:32) [20]
Вообще, то был просто вопрос :)
← →
Anatoly Podgoretsky © (2008-05-19 22:13) [22]Какое еще округление для чисел с плавающей запятой, кроме округления до челого, это все иллюзия.
Только FormatFloat 0.00000
← →
Amoeba © (2008-05-19 23:00) [23]Спорщикам читать вот это:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
← →
palva © (2008-05-19 23:16) [24]
> Спорщикам читать вот это:
Гораздо интереснее спорить в коллективе, чем читать одному. У-у-у...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.048 c