Страница 1 из 1
Какая есть функция для округления чисел???
Добавлено: 18 ноя 2005, 09:03
Dr_Grizzly
Всем привет! Склероз замучал

Есть переменная типа Real в ней результат дробного числа 1.5472643347 надо округлить до сотых

Именно округлить а не отрезать хвост

Подскажите.
Добавлено: 18 ноя 2005, 09:13
Duncon
Код: Выделить всё
function Rounder(var Value: Double; Decimals: Integer): Double;
var
j: Integer;
A: Double;
begin
A := 1;
case Decimals of
0: A := 1;
1: A := 10;
else
for j := 1 to Decimals do
A := A * 10;
end;
Result := Int((Value * A) + 0.5) / A;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Value: Double;
begin
Value := 23.56784;
//Result is 23.57
label1.Caption := FloatToStr(Rounder(Value, 2));
end;
[/color]
Добавлено: 18 ноя 2005, 11:12
Игорь Акопян
если надо просто отобразить, то проще
Код: Выделить всё
label1.caption := Format('%.2f', [23.56784]);
Добавлено: 18 ноя 2005, 14:18
OTELLO
А вообще функции есть вшитые
* Round- до ближайшего целого
* Trunc - в сторону нуля
* Ceil - в сторону увеличения
* Floor - в сторону уменьшения
Добавлено: 18 ноя 2005, 16:14
LAngel
ещё:
RoundTo(Что, сколько знаков после запятой)
Добавлено: 19 ноя 2005, 16:23
YurikGL
а еще можно
round(число*100)/100
Добавлено: 12 июл 2006, 16:04
Madshall
еще можно floattostrf(), а потом strtofloat() и все
