Страница 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() и все :D