Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Округление   Найти похожие ветки 

 
bablja ©   (2006-11-27 12:36) [0]

Уважаемые , подскажите как округлить число до нужного разряда?
заранее благодарю


 
alex810 ©   (2006-11-27 12:37) [1]

Может это поможет
function RoundStr(Zn: Real; kol_zn: Integer): Real;
var
 snl, s, s0, s1, s2: string;
 n, n1: Real;
 nn, i: Integer;
begin
 s := FloatToStr(Zn);
 if (Pos(",", s) > 0) and (Zn > 0) and
 (Length(Copy(s, Pos(",", s) + 1, length(s))) > kol_zn) then
 begin
   s0 := Copy(s, 1, Pos(",", s) + kol_zn - 1);
   s1 := Copy(s, 1, Pos(",", s) + kol_zn + 2);
   s2 := Copy(s1, Pos(",", s1) + kol_zn, Length(s1));
   n := StrToInt(s2) / 100;
   nn := Round(n);
   if nn >= 10 then
   begin
     snl := "0,";
     for i := 1 to kol_zn - 1 do
       snl := snl + "0";
     snl := snl + "1";
     n1 := StrToFloat(Copy(s, 1, Pos(",", s) + kol_zn)) + StrToFloat(snl);
     s := FloatToStr(n1);
     if Pos(",", s) > 0 then
       s1 := Copy(s, 1, Pos(",", s) + kol_zn);
   end
   else
     s1 := s0 + IntToStr(nn);
   if s1[Length(s1)] = "," then
     s1 := s1 + "0";
   Result := StrToFloat(s1);
 end
 else
   Result := Zn;
end;



или

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;


 
Sam Stone ©   (2006-11-27 12:38) [2]

RoundTo(). Лежит, кажется, в Math.


 
Krants   (2006-11-27 15:26) [3]

r:=1000; //разряд
...
round(a*r)/r


 
DrPass ©   (2006-11-27 15:47) [4]


> alex810 ©   (27.11.06 12:37) [1]
> Может это поможет

Вряд ли...



Страницы: 1 вся ветка

Текущий архив: 2006.12.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
2-1164799572
mfender
2006-11-29 14:26
2006.12.17
TDateTimePicker


2-1164709195
alex810
2006-11-28 13:19
2006.12.17
Компонент Query


2-1164737960
Ezorcist
2006-11-28 21:19
2006.12.17
вопрос про uses


3-1160476542
RebroFF
2006-10-10 14:35
2006.12.17
Помогите построить запрос


15-1164727618
term1t
2006-11-28 18:26
2006.12.17
Delphi умирает?