Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизОкругление чисел. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.055 c