![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
тип real [D5, NT4]
maxon © (2002-05-28 12:39:00)как мне присвоить или показать переменную типа real, что бы она округлялась или показывалась до 4-го знака после запятой.
Anatoly Podgoretsky (2002-05-30 19:45:00) [1]Fredericco © (30.05.02 15:14)
Вот это правильный подход, а для этого существует FormatFloat("0.0000",F)
Игорь Шевченко (2002-05-30 17:35:00) [2]Currency - это целое число. С фиксированной точкой
Fredericco (2002-05-30 15:18:00) [3]И еще. В таких случаях обычно использую
Currency.
Он сам, вроде, все округляет.
Currency –922337203685477.5808.. 922337203685477.5807
Fredericco (2002-05-30 15:14:00) [4]2 Anatoly Podgoretsky © (30.05.02 12:49)
> maxon © (28.05.02 12:39)
> как мне присвоить или показать переменную типа real, что
> бы она округлялась или показывалась до 4-го знака после
> запятой.
Я и сам порой сталкивался с такой проблемой, и понял, что мне в принципе по фиг сколько у меня он там знаков после запятой сохраняет. А вот пользователю на экран или в БД как раз таким способом и сохранял. Тьфу-тьфу проблем и неточностей пока не было...
Anatoly Podgoretsky (2002-05-30 12:49:00) [5]Прикол в другом, число с ПЛАВАЮЩЕЙ запятой, а не с фиксированный, поэтому это понятие не применимо, для подтвержения этого и выбрано именно это число, чсто бы доказать невозможность этой операции, и главное не надо путать вывод числа на дисплей с его истинным значением.
Johnmen (2002-05-30 12:42:00) [6]Fredericco © (30.05.02 12:21)
Прикол в неотображении 4 знаков после десятичного разделителя :)
Anatoly Podgoretsky (2002-05-30 12:40:00) [7]Fredericco © (30.05.02 12:21)
Я ошибся, надо не f:Real а F:Single
Но и для первого примера не верь глазам своим, а проверь значение с помощью отладчика
Fredericco (2002-05-30 12:21:00) [8]2 Anatoly Podgoretsky © (29.05.02 14:24)
Проверил. Все работает.
Не понимаю в чем прикол? :-)
Игорь Шевченко (2002-05-29 15:07:00) [9]Если надо округлить, то и мой вариант сгодится. Если только показывать, то можно и проще :-)
Lord Warlock (2002-05-29 14:44:00) [10]
> Игорь Шевченко © (29.05.02 14:39)
зачем если можно проще...
Игорь Шевченко (2002-05-29 14:39:00) [11]function RoundTo(R: Extended; Places: Byte): Extended;
var
TempStr : string;
Code : integer;
begin
if Abs(R)<0.5*Exp(-Places*Ln(10)) then
Result:=0
else begin
Str(R:0:Places,TempStr);
Val(TempStr,Result,Code);
end;
end;
Передать ей real, он преобразуется в extended :-)))
Anatoly Podgoretsky (2002-05-29 14:24:00) [12]Fredericco © (29.05.02 14:00)
Зело рекомендую проверить
f:real;
s:string;
f:=0.02;
s:=FloatToStr(Trunc(f*1000)/1000);
ShowMessage(s);
Lord Warlock (2002-05-29 14:13:00) [13]ShowMessage(format("%10.4f",[r]))
Fredericco (2002-05-29 14:00:00) [14]
r:real;
s:string;
....
r:=10.123456789;
s:=FloatToStr(Trunc(r*1000)/1000);
ShowMessage(s);
Song (2002-05-28 13:41:00) [15]multimedia средствами?