![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Округление числа? [D7]
SASH2 © (2004-08-12 14:03:00)Добрый день!
На форме есть компонент Edit. В него ввожу цифири, например: 12.239 (float). Подскажите пожалуйста как можно сделать округление числа, т.е. чтоб было 12.240
OSokin (2004-08-12 19:54:00) [1]Вот, накопал в FAQ:
function RoundEx( X: Double; Precision : Integer ): Double;
{Precision :
1 - до целых
10 - до десятых
100 - до сотых
...
}
var ScaledFractPart, Temp : Double;
begin
ScaledFractPart := Frac(X)*Precision;
Temp := Frac(ScaledFractPart);
ScaledFractPart := Int(ScaledFractPart);
if Temp >= 0.5 then ScaledFractPart := ScaledFractPart + 1;
if Temp <= -0.5 then ScaledFractPart := ScaledFractPart - 1;
RoundEx := Int(X) + ScaledFractPart/Precision;
end;
begin...end (2004-08-12 15:05:00) [2]
> [5] SASH2 (12.08.04 14:28)
function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;
> И что в эту функцию вписывать?
Наверняка ты взял описание синтаксиса функции из help'а. Трудно было прочитать дальше?
Для округления 12.239 до 12.240 (насколько я понял твоё желание) ADigit должно быть равно -2.
SASH2 (2004-08-12 14:28:00) [3]function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;
И что в эту функцию вписывать?
QQ (2004-08-12 14:18:00) [4]
RoundToиз модуляMath
Sandman25 (2004-08-12 14:12:00) [5][2] SASH2 (12.08.04 14:10)
Оставить где, в числе? Или при его выводе в виде текста?
SASH2 (2004-08-12 14:10:00) [6]А как можно оставить только три знака после запятой, т. е. если у нас, например: 12.246653778, то оставить только 12.246?
_student (2004-08-12 14:05:00) [7]Написать функцию MyRound(i:integer):integer;