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

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

Что за тип - Currency? [D7, Win95/98]


Gost ©   (2005-02-17 10:48:00) 

Что за тип дпных - Currency?


Jeer   (2005-02-18 11:59:00) [1]

VikUA   (17.02.05 23:33) [11]

Небольшое добавление - вот как производится приведение форматов в Delphi

d:Float - > c:Currency

c := round(d*10000)/10000
Причем round - математическое округление !

Пример 1
d = 1.12345
c = round(11234.5) = 11235/10000 = 1.1235
(по правилам банковского округления здесь должно быть 1.1234 !!!)

Пример 2

d = 1.12355
c = round(11235.5) = 11236/10000 = 1.1236

Кроме того, не совсем верно утверждение - "(переводя их в целые числа)"
Currency размещаются в 64-битном типе, а логически, представляются форматом с фиксированной точкой (4 знака после запятой).

Поэтому, при преобразованиях Currency - > Float происходит преобразование к формату Float, деление на 10000, выполнение операций, а если результат опять размещается в Currency, то см.
Float - > Currency.


Anatoly Podgoretsky   (2005-02-17 23:42:00) [2]

Зраните деньги в мегабаксах и вам будет глубоко наплевать на Деньги (Currency)


VikUA   (2005-02-17 23:33:00) [3]

Конечно, все предыдущие посты блещут остроумием, но я отвечу по делу. Тип Currency используется для исключения ошибок округления.  Переменные Currency должны иметь не более 4 знаков после запятой (Если вы работаете с таблицами, то тип NUMERIC или DECIMAL с точностью не более 4 знаков после запаятой). Дело в том, что Delphi операнды типа Currency сначала умножает на 10000 (переводя их в целые числа), выполняет операцию, а затем результат делит на 10000.


Palladin   (2005-02-17 19:35:00) [4]


> Что за тип дпных - Currency?

Клвишу F1 на клавиатуре видел когда нибудь?


Ega23   (2005-02-17 14:05:00) [5]

note2 пропустил. Хотя - редкость. Но бывает...   :о)


clickmaker   (2005-02-17 13:57:00) [6]


> Bucks - это множественное число


type
 TBuck = (note1, note5, note10, ...);
 TBucks = set of TBuck;

пачка баков, короче :)


Ega23   (2005-02-17 13:45:00) [7]

2 clickmaker ©   (17.02.05 13:24) [5]

Ты не патриот...    :о)


Ega23   (2005-02-17 13:45:00) [8]

Кстати, тогда уж TBuck. Bucks - это множественное число.


clickmaker   (2005-02-17 13:24:00) [9]

есть еще производные типы
TBucks
TEuro
TTugrick
...


esu   (2005-02-17 12:17:00) [10]


> Алхимик ©   (17.02.05 10:51) [2]

Анекдотец придумался :)

- Ты деньги где хранишь ?
- Ясень пень в currency!


msguns   (2005-02-17 11:21:00) [11]

Ах, деньги, деньги, деньги, рублики
Франки, фунты, стерлинги и тугрики..
(c)


Ega23   (2005-02-17 10:51:00) [12]

Деньги


Алхимик   (2005-02-17 10:51:00) [13]

Для хранения бабла. Денег, тобишь.


Наверх

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