Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Округление чисел. [D7, WinXP]


Страницы:   1 2

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 цифр после запятой.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо