Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];

Вниз

Очень срочно надо   Найти похожие ветки 

 
Kevin   (2001-12-26 15:38) [0]

Как округлить переменую типа Float до нужного знака???


 
MBo   (2001-12-26 15:41) [1]

используй FloatToStrF или Format


 
Turalyon   (2001-12-26 15:50) [2]

Я делал так
Надо округлить до 3 знака:
....
f : float;
...
begin
f := round ( f * 1000 )/1000;

Если на 4 знака, то соответсятвенно на 10000 и т.д.
Знаю что через з..цу а что делать :)


 
Kevin   (2001-12-26 16:41) [3]

Большое спасибо. Вы меня выручили!


 
handra   (2001-12-26 18:04) [4]

только с round есть тонкости, о чем уже писалось:
round(27.5)=round(28.5)


 
asafr   (2001-12-26 18:11) [5]

И использовать лучше не f : float, а f :Double;


 
SergVlad   (2001-12-26 22:42) [6]

Еще вариант
Str(X:4:3,S);
X := StrToFloat(s);
Еще
X := StrToFloat(FormatFloat("#.##", X );)



 
Lumi   (2001-12-27 10:31) [7]

Если есчё нужно: Я использую такой вариант округления чисел с плавающей точкой:

function Degree(Num: Double; Deg: Integer): Double;
var
I: Integer;
Begin
if Num <> 0 then
begin
Result := 1;
if Deg < 0 then
for I := 1 to abs(Deg) do Result := Result / Num
else
for I := 1 to Deg do Result := Result * Num;
end
else
Result := 0;
end;

function RoundEx(Value: Double; ADecimal: Integer): Double;
var
I, D, tmp: Double;
begin
D := Degree(10, ADecimal);
if D <> 0 then
begin
I := Frac(Value) * D;
tmp := Frac(I);
I := Int(I);
if tmp >= 0.5 then I := I + 1;
if tmp <= -0.5 then I := I - 1;
Result := Int(Value) + I / D;
end
else
Result := Value;
end;

Кстати о вышеизложенном
1) преобразование в строки не стоит использовать (ненужная куча нагрузки)
2) Round - преобразует только в целые числа, если число больше чем maxInt, то Exeption



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

Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
1-42511
GrishaK
2001-12-26 12:58
2002.01.14
Явная загрузка dll


14-42558
MJH
2001-11-19 09:39
2002.01.14
Good Idea 4 Forums!


3-42356
bk
2001-12-09 16:30
2002.01.14
Probeli V ADO


4-42608
gluka
2001-11-13 16:57
2002.01.14
GetModuleFileNameEx--возвращает путь, но некоторые...


14-42559
fliz
2001-11-19 10:43
2002.01.14
Монитор полетел.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский