Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

тип 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 средствами?


Наверх

Титульная страница Поиск, карта сайта Написать письмо