![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Округление чисел. [D7, WinXP]
Klim © (2004-12-27 03:44:00)Мастера, скажите:
Как округлить число в едите до двух знаков после запятой.
У меня производиться расчет и в некоторых едитах - получаются некрасивые цифры.
Скажите пожалуйста.
TButton (2004-12-27 23:34:00) [1]топик удалить
автора в блок (с)
Jay1982 (2004-12-27 11:03:00) [2]При pres = 100, округление до 2х знаков и т.п.
Jay1982 (2004-12-27 11:02:00) [3]
function RoundEx(num: Real; pres: LongWord): Real;
begin
num := num * pres;
if Frac(num) >= 0.5 then num := num + 1;
result := Int(num) / pres
end;
Ega23 (2004-12-27 10:47:00) [4]Есть 2 замечательные функции - Str и обратная ей Val.
Плохиш (2004-12-27 10:45:00) [5]
>MakNik (27.12.04 10:38) [16]
Ну ты, блин, ваше, ему же умножение надо! :-)
MakNik (2004-12-27 10:38:00) [6]
> Klim (27.12.04 10:14) [14]
> Я пока неодного метода неувидел , который бы мне подошел.
> Вовсех методах уже используются готовые числа.
... а что мешает написать так?
Edit3.Text:=FormatFloat('0.00', StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text));
Плохиш (2004-12-27 10:35:00) [7]
>Klim (27.12.04 10:14) [14]
>Я пока неодного метода неувидел , который бы мне подошел.
>Вовсех методах уже используются готовые числа.
>А в моем - число может быть непредсказуемым.
Скажи, дорогой, чем отличаются "готовые числа" от "непредсказуемым"?
Может тебе пора специализацию менять?
Klim (2004-12-27 10:14:00) [8]Я пока неодного метода неувидел , который бы мне подошел.
Вовсех методах уже используются готовые числа.
А в моем - число может быть непредсказуемым.
Напишите кто нить...
Пожалуйста.
MakNik (2004-12-27 10:05:00) [9]В момент присвоения значения в Edit3 сразу и округляй любым из ранее описаных методов... а полное значение (если оно нужно для других расчетов), храни отдельно...
korvin (2004-12-27 09:26:00) [10]В некотором смысле следующий способ тоже не плохо работает:
Edit3.Text:=FormatFloat('0.00', 3.423+2.521);
Как понятно - '0.00' регулирует количество знаков после запятой :)
Klim (2004-12-27 09:26:00) [11]Не - нетак.
Я же незнаю какое число получится в третьем едите.
Я просто умножаю 2 едита - а в третьем выводится результат уже округленный до 2 знаков после запятой.
korvin (2004-12-27 09:26:00) [12]В некотором смысле следующий способ тоже не плохо работает:
Edit3.Text:=FormatFloat('0.00', 3.423+2.521);
Как понятно - '0.00' регулирует количество знаков после запятой :)
Fay (2004-12-27 04:52:00) [13]Типа ентого
uses
Math;
....
var
d : Double;
t : TFPURoundingMode;
begin
t := GetRoundMode;
SetRoundMode(rmTruncate);
d := RoundTo(133.666666666666, -2);
SetRoundMode(t);
ShowMessage(FloatToStr(d));
P.N.P. (2004-12-27 04:51:00) [14]> Klim
см. модуль Math - там много полезного,
например функция RoundTo
Klim (2004-12-27 04:37:00) [15]Всмысле по каким правилам????
Я хочу чтоб напрмер так было:
При умножении двух едитов у меня в третьем едите получается число 133,666666666666
Это очень некрасиво .
Я хочу чтоб в третьем едите сразу появлялось 133,66
Вроде все сказал...
Fay (2004-12-27 04:32:00) [16]А по каким правилам округлять?
Klim (2004-12-27 04:30:00) [17]Fay
Это само собой.
Я же тут привел условный пример - чтобы до вашего сведения довести - что я хочу...
На самом деле у меня очень сложные расчеты идут.
Но я хочу чтоб вы мне объяснили на примере этих трех эдитов.
Скажите кто нибудь. Как округлить!???
Klim (2004-12-27 04:29:00) [18]Fay
Это само собой.
Я же тут привел условный пример - чтобы до вашего сведения довести - что я хочу...
На самом деле у меня очень сложные расчеты идут.
Но я хочу чтоб вы мне объяснили на примере этих трех эдитов.
Скажите кто нибудь. Как округлить!???
Fay (2004-12-27 04:23:00) [19]При умножении Edit1 на Edit2 не забудь разделить результат на TEdit, чтобы соблюсти размерность. Дело в том, что Edit3 измеряется в TEdit, а не в TEdit^2.
8)
Klim (2004-12-27 04:01:00) [20]Спасібо за ответ...
но мне не так надо.
У меня дано три едита: Edit1 Edit2 Edit3
Я умножаю Edit1 на Edit2 а в Edit3 - показывается результат.
Вот мне надо чтоб в Edit3 число было с максимумлм до 2 цифр после запятой.