Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

Округление чисел.   Найти похожие ветки 

 
Klim   (2004-12-27 03:44) [0]

Мастера, скажите:
Как округлить число в едите до двух знаков после запятой.

У меня производиться расчет и в некоторых едитах - получаются некрасивые цифры.

Скажите пожалуйста.


 
TButton ©   (2004-12-27 03:53) [1]

Edit.Text:=Format("%f",[chislo]);
Format + F1
а еще в свое время это делалось так
f:=Trunc(f*100)/100;
Writeln("f=",f);


 
Klim   (2004-12-27 04:01) [2]

Спасібо за ответ...
но мне не так надо.

У меня дано три едита: Edit1  Edit2  Edit3

Я умножаю Edit1 на Edit2  а в  Edit3 - показывается результат.
Вот мне надо чтоб в Edit3 число было с максимумлм до 2 цифр после запятой.


 
Fay ©   (2004-12-27 04:23) [3]

При умножении Edit1 на Edit2 не забудь разделить результат на TEdit, чтобы соблюсти размерность. Дело в том, что Edit3 измеряется в TEdit, а не в TEdit^2.

8)


 
Klim   (2004-12-27 04:29) [4]

Fay
Это само собой.
Я же тут привел условный пример - чтобы до вашего сведения довести - что я хочу...

На самом деле у меня очень сложные расчеты идут.
Но я хочу чтоб вы мне объяснили на примере этих трех эдитов.

Скажите кто нибудь. Как округлить!???


 
Klim   (2004-12-27 04:30) [5]

Fay
Это само собой.
Я же тут привел условный пример - чтобы до вашего сведения довести - что я хочу...

На самом деле у меня очень сложные расчеты идут.
Но я хочу чтоб вы мне объяснили на примере этих трех эдитов.

Скажите кто нибудь. Как округлить!???


 
Fay ©   (2004-12-27 04:32) [6]

А по каким правилам округлять?


 
Klim   (2004-12-27 04:37) [7]

Всмысле по каким правилам????

Я хочу чтоб напрмер так было:

При умножении двух едитов у меня в третьем едите получается число 133,666666666666

Это очень некрасиво .
Я хочу чтоб в третьем едите сразу появлялось 133,66

Вроде все сказал...


 
P.N.P. ©   (2004-12-27 04:51) [8]

> Klim
см. модуль Math - там много полезного,
например функция RoundTo


 
Fay ©   (2004-12-27 04:52) [9]

Типа ентого

uses
 Math;
....
var
 d : Double;
 t : TFPURoundingMode;
begin
 t := GetRoundMode;
 SetRoundMode(rmTruncate);
 d := RoundTo(133.666666666666, -2);
 SetRoundMode(t);
 ShowMessage(FloatToStr(d));


 
korvin ©   (2004-12-27 09:26) [10]

В некотором смысле следующий способ тоже не плохо работает:
Edit3.Text:=FormatFloat("0.00", 3.423+2.521);
Как понятно - "0.00" регулирует количество знаков после запятой :)


 
korvin ©   (2004-12-27 09:26) [11]

В некотором смысле следующий способ тоже не плохо работает:
Edit3.Text:=FormatFloat("0.00", 3.423+2.521);
Как понятно - "0.00" регулирует количество знаков после запятой :)


 
Klim   (2004-12-27 09:26) [12]

Не - нетак.
Я же незнаю какое число получится в третьем едите.

Я просто умножаю 2 едита - а в третьем выводится результат уже округленный до 2 знаков после запятой.


 
MakNik   (2004-12-27 10:05) [13]

В момент присвоения значения в Edit3 сразу и округляй любым из ранее описаных методов... а полное значение (если оно нужно для других расчетов), храни отдельно...


 
Klim   (2004-12-27 10:14) [14]

Я пока неодного метода неувидел , который бы мне подошел.
Вовсех методах уже используются готовые числа.
А в моем - число может быть непредсказуемым.

Напишите кто нить...
Пожалуйста.


 
Плохиш ©   (2004-12-27 10:35) [15]


>Klim   (27.12.04 10:14) [14]
>Я пока неодного метода неувидел , который бы мне подошел.
>Вовсех методах уже используются готовые числа.
>А в моем - число может быть непредсказуемым.

Скажи, дорогой, чем отличаются "готовые числа" от "непредсказуемым"?
Может тебе пора специализацию менять?


 
MakNik   (2004-12-27 10:38) [16]


> Klim   (27.12.04 10:14) [14]
> Я пока неодного метода неувидел , который бы мне подошел.
> Вовсех методах уже используются готовые числа.

... а что мешает написать так?

Edit3.Text:=FormatFloat("0.00", StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text));


 
Плохиш ©   (2004-12-27 10:45) [17]


>MakNik   (27.12.04 10:38) [16]

Ну ты, блин, ваше, ему же умножение надо! :-)


 
Ega23 ©   (2004-12-27 10:47) [18]

Есть 2 замечательные функции - Str и обратная ей Val.


 
Jay1982 ©   (2004-12-27 11:02) [19]


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;


 
Jay1982 ©   (2004-12-27 11:03) [20]

При pres = 100, округление до 2х знаков и т.п.


 
TButton ©   (2004-12-27 23:34) [21]

топик удалить
автора в блок (с)



Страницы: 1 вся ветка

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.043 c
4-1101562207
Express
2004-11-27 16:30
2005.01.16
Перевод компьютера в режим пониженного энергопотребления


3-1102658538
StarCon
2004-12-10 09:02
2005.01.16
RecordCount не работает...


6-1098625186
criogen
2004-10-24 17:39
2005.01.16
Почта через прокси


14-1104264166
Gero
2004-12-28 23:02
2005.01.16
Не могу поставить Delphi


9-1096752441
Anybody
2004-10-03 01:27
2005.01.16
Вопрос про LagCount