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

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

отображение FLOAT [D7, IB6.x]


Страницы:   1 2

yk ©   (2005-05-25 10:33:00) 

Уважаемые Мастера!
Простите за нескромный вопрос,
как можно задать в запросе точность float до определённого знака?
например я выбираю цены товаров, и у меня в таблице выводятся
числа типа 45,3406768456, а мне надо только 45,34
(т.е. 45 руб 34 коп)

Заранее спасибо :)


Danilka   (2005-05-27 10:56:00) [1]

хотя нет, не безразмерный: были рубли, стали доллары, но тем не менее - коэффициент.


Danilka   (2005-05-27 10:53:00) [2]

[27] msguns ©   (27.05.05 10:46)
> А тебе не приходило в голову, что валютный курс - это та
> же цена. Только денег ?

Хм, по-моему все-таки нет. На мой взгляд, это не цена, а безразмерный коэффициент, такой-же как и количество. Когда умножаем или делим что-то на безразмерный коэффициент, получаем ту-же размерность, что была ранее. Умножаем деньги на ко-во - получаем деньги. Умножаем деньги на курс - получаем деньги.
:)


msguns   (2005-05-27 10:46:00) [3]

>Danilka ©   (27.05.05 09:42) [26]
>за исключением того, что курс не является деньгами, а является коэффициентом.

А тебе не приходило в голову, что валютный курс - это та же цена. Только денег ?


Danilka   (2005-05-27 09:42:00) [4]

[25] msguns ©   (27.05.05 09:33)
> Но опять же существуют разные предметные области, где точнось
> денежных характеристик (цена, сумма, курс  и т.д.) может
> быть и 2, и больше знаков дроби.

С этим согласен, за исключением того, что курс не является деньгами, а является коэффициентом.
Но с предыдущим твоми примером не совсем согласен - бухгалтерия все равно себестоимость партии будет списывать с точностью до двух знаков и дофига народу работает в 1с-ке и не жужжит по поводу точности 2 знака, и гвоздями успешно торгует. :)
Но, конечно, постановка она разная может быть и требования разные.


msguns   (2005-05-27 09:33:00) [5]

>Danilka ©   (27.05.05 09:27) [24]
>Тоже вопрос спорный, но, честно говоря, с тобой по этому поводу надоело спорить. :)))

Дань, ну кто ж тебя в попу-то колет - спорить ?
Если у тебя не было и нет причин беспокоиться о потери точности - и слава богу, и на здоровье !
Но опять же существуют разные предметные области, где точнось денежных характеристик (цена, сумма, курс  и т.д.) может быть и 2, и больше знаков дроби.
Я вообще не вижу тут предмета для спора. Однако на всякий случай советую новичкам: будьте предусмотрительны, помните о законах Мэрфи: если все у вас сегодня хорошо - то в ближайшее время случится что-нибудь непредвиденное, которое все испортит ;)


Danilka   (2005-05-27 09:27:00) [6]

[18] msguns ©   (26.05.05 10:55)
Тоже вопрос спорный, но, честно говоря, с тобой по этому поводу надоело спорить. :)))


Danilka   (2005-05-27 09:25:00) [7]

[12] yk ©   (26.05.05 08:19)
Правильно тебе понравилось. :))

[15] Polevi ©   (26.05.05 09:45)
> 4 тоже может не хватить, у меня (20,8)

Для хранениячего, денег??? Ну-ну. Если какой-то коэффициент, например курс валюты, тогда, таки да. Если деньги, то и двух знаков достаточно для хранения, а в вычислениях надо использовать максимум.

Ну, шо, опять холивар? :))


msguns   (2005-05-27 09:13:00) [8]

>alex_***   (26.05.05 18:15) [21]
>у float поля в Delphi есть возможность задать маску для форматирования, насколько помню

см [2]


alex_***   (2005-05-26 18:15:00) [9]

у float поля в Delphi есть возможность задать маску для форматирования, насколько помню


msguns   (2005-05-26 15:58:00) [10]

>YK ©   (26.05.05 15:53) [19]
>(храню цену за 1 шт, а не 1000 )
>Может мне тогда особо и не нужны знаки после запятой  ?

Пример в [18] приведен как раз для иллюстрации нужности. Читайте ответы вдумчивее ;)


YK   (2005-05-26 15:53:00) [11]

у меня в проге надо вводить цену за штуку и количество изделий в поставке - итого подсчитывается
(храню цену за 1 шт, а не 1000 )
Может мне тогда особо и не нужны знаки после запятой  ?


msguns   (2005-05-26 10:55:00) [12]

>Polevi ©   (26.05.05 09:45) [15]
>4 тоже может не хватить, у меня (20,8)

Зависит от специфики предметной области. На что я и намекнул. Цифра "4" была указана просто как пример

>yk ©   (26.05.05 09:54) [17]
>Не очень понимаю зачем это :(

Приходная накладная
-------------------------------
..
Пакеты п/э  шт: 10000    Цена за 1000:   12-38  Сумма 123-80

Продаются в розницу поштучно. Цена вх.за 1 ед 0-01,238 коп.

Примечание: Вх.цена нужна для насчета дохода от продажи и вообще для бухгалтерии


yk   (2005-05-26 09:54:00) [13]


> msguns ©  


> Если же может быть мелочевка, то такой вариант рискован,
> лучше использовать сотые копеек (15,4)

Не очень понимаю зачем это :(
Для деления что-ли?


yk   (2005-05-26 09:49:00) [14]


> А что такое decimal(15,2)на самом деле ???

Для "виртуальных" типов данных NUMERIC(precision, scale) и DECIMAL (precision, scale) при объявлении поля анализируется его точность, и IB пытается "втиснуть" его в один из физических типов - в диалекте 1: smallint, integer, float, double precision - в соответствии с указанными precision и scale, в диалекте 3: smallint, integer, in64.

Собственно говоря, я хочу использовать decimal для того, чтобы не совершать преобразования ручками (могу запутаться :( )
Ну в Delphi конечно , если надо делаю RoundTo(num,-2)


Polevi   (2005-05-26 09:45:00) [15]

>msguns ©   (26.05.05 09:14) [13]
4 тоже может не хватить, у меня (20,8)


Johnmen   (2005-05-26 09:24:00) [16]

>yk ©   (26.05.05 08:19) [12]

А что такое decimal(15,2)на самом деле ???

Может я уже давно чего-то не понимаю, вот автор сам нашел на ibase.ru и привел здесь ссылку на статью, отвечающую на все вопросы по данной теме. НО !!! Такое впечатление, что сам он эту статью не читал. Даже по диагонали...:(


msguns   (2005-05-26 09:14:00) [17]

>yk ©   (26.05.05 08:19) [12]
>Мне понравился вариант с decimal(15,2)

Если ТМЦ типа автомобилей или недвижимости, то вполне сойдет. Если же может быть мелочевка, то такой вариант рискован, лучше использовать сотые копеек (15,4)


yk   (2005-05-26 08:19:00) [18]

YrikGL !
Мне понравился вариант с decimal(15,2)
Предлагаю перевести цену на этот тип.
Или ты настаиваешь на integer ? (Какие аргументы ?)

Пока буду у себя с decimal работать...


isasa   (2005-05-25 17:05:00) [19]

>Надо чётко разделять такие понятия, как "хранение/вычисление" >и "отображение". Они никак, по большому счёту, не связаны.

>Если вместо double использовать single (эквивалент FLOAT), то >результат будет еще хуже: -43,9400634765625

Совершенно верно, и поэтому выводить число single, как
-43,9400634765625
мягко выражаясь некорректно


yk   (2005-05-25 11:19:00) [20]

http://www.ibase.ru/devinfo/round.htm NUMERIC(15, 2) или как DECIMAL(15, 2)
????

Как разберусь с этим обязательно напишу что получилось ;)


Страницы:   1 2

Наверх

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