Главная страница
    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.45 MB
Время: 0.032 c
15-1164270914
TauRus
2006-11-23 11:35
2006.12.17
Вычисление SIN, как еще можно сделать?


15-1164555160
iZEN
2006-11-26 18:32
2006.12.17
Сравнение ядер операционок


2-1164783034
Hero
2006-11-29 09:50
2006.12.17
Завершить процесс explorer,просто убивание процесса неподходит


15-1164264232
Юрий С.А.
2006-11-23 09:43
2006.12.17
Русский язык


2-1164961836
KyRo
2006-12-01 11:30
2006.12.17
Подскажите почему я не могу освободить поток





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский