|
float, numeric
|
|||
---|---|---|---|
#18+
Всем привет ! Посоветуйте какой тип использовать для финансовых операций - NUMERIC или Float или Money ? Меня напрягают нюансы с округлением и особенностями умножений NUMERIC. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 13:42 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Testor1Всем привет ! Посоветуйте какой тип использовать для финансовых операций - NUMERIC или Float или Money ? Меня напрягают нюансы с округлением и особенностями умножений NUMERIC. :(А округления FLOAT не напрягают? :)) Пробуйте MONEY ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 13:44 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Т.е. тот ньюанс, что float - неточный тип, вас не напрягает? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 13:44 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Testor1Всем привет ! Посоветуйте какой тип использовать для финансовых операций - NUMERIC или Float или Money ? Меня напрягают нюансы с округлением и особенностями умножений NUMERIC. :( Сейчас работаю в компании, где таки используют float - поверьте, трудно обьяснимые нестыковки всяких разных отчетных сумм вас напрягут еще сильнее, а точнее напряжет бизнес, заказчик, покупатель ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 14:19 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Testor1Это напрягает Вы обратили внимание на то, с какой точностью приводится пример? А теперь расскажите, что Вас будет напрягать при финансовых операциях с money у которого точность 4?! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:49 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Гавриленко Сергей АлексеевичТ.е. тот ньюанс, что float - неточный тип, вас не напрягает? Может это бухгалтерия наркокартеля? И мильен-другой погоды не делает. А вот крупные суммы (~10^308) надо хранить... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 17:51 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Testor1особенностями умножений NUMERICУ NUMERIC есть особенности? Вы имеете ввиду что точный тип это такая "особенность"? Ну в принципе да, обычно везде бардак. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 18:02 |
|
float, numeric
|
|||
---|---|---|---|
#18+
MniorУ NUMERIC есть особенности? Вы имеете ввиду что точный тип это такая "особенность"?Ну вообще NUMERIC довольно тяжело использовать. Некоторые вещи можно объяснить, только долго и вдумчиво читая документацию, тут была масса таких примеров. С float всё достаточно просто, нужно только помнить о том, что тип неточный. А для NUMERIC нужно точно знасть, какой результат получяется для каждой операции и функции; для выражения предсказать результат из завсегдатаев форума может только Глори :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 18:30 |
|
float, numeric
|
|||
---|---|---|---|
#18+
pkarklinTestor1Это напрягает Вы обратили внимание на то, с какой точностью приводится пример? А теперь расскажите, что Вас будет напрягать при финансовых операциях с money у которого точность 4?! у нас был как-то расчет среднего на партию товаров. Вот там средняя получалась с 6 знаками. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 18:58 |
|
float, numeric
|
|||
---|---|---|---|
#18+
alexeyvgА для NUMERIC нужно точно знасть, какой результат получяется для каждой операции и функции; для выражения предсказать результат из завсегдатаев форума может только Глори :-)Вы издеваетесь? Первое полугодие первого курса. Как повторение и закрепление школьного. Модератор: Вы как-то возбуждены сегодня, не находите?! Ну может быть пару особенностей, которые всё равно выявятся сразу же. Да и то большая часть там с константами и неявными преобразованиями. авторС float всё достаточно простоСогласен, тупо не считает точно и всё тут. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 19:52 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Ivan Durakу нас был как-то расчет среднего на партию товаров. Вот там средняя получалась с 6 знаками. Точность money тут абсолютно не причем, ибо правила округления хоть при расчете среднего на партию товара, хоть при расчет НДС в строке С\Ф никто не отменял. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 19:55 |
|
float, numeric
|
|||
---|---|---|---|
#18+
MnioralexeyvgА для NUMERIC нужно точно знасть, какой результат получяется для каждой операции и функции; для выражения предсказать результат из завсегдатаев форума может только Глори :-)Вы издеваетесь? Первое полугодие первого курса. Как повторение и закрепление школьного.Ну вот например: http://www.sql.ru/forum/1004492/raschety-s-ispolzovaniem-decimal-mozhete-obyasnit-pochemu http://www.sql.ru/forum/791756/useknovenie-znacheniy-posle-zapyatoy-transact-sql И зачем эти геморрои? И зачем мене эти вычисления Точность, масштаб и длина (Transact-SQL) для каждой операции, для каждого выражения в каждом запросе??? MniorавторС float всё достаточно простоСогласен, тупо не считает точно и всё тут. Ну да, тупо не считает точно и тупо получается правильный результат, каждый раз. Ну только совсем немного простых правил, и всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 21:33 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Модераторpkarklin (Модератор)Вы как-то возбуждены сегодня, не находите?! И я в чём-то ошибся? Если я неправ, то поправят, я только буду рад. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 21:36 |
|
float, numeric
|
|||
---|---|---|---|
#18+
alexeyvgТочность, масштаб и длина (Transact-SQL) для каждой операции, для каждого выражения в каждом запросе?Таки в каждой операции? Деление (и умножение) нумерика на нумерик? Я именно к этому и клоню. Если там что-то такое наклёвывается - значит задача видится не с того ракурса. Остальное по пальцам одной руки. Закидайте меня помидорами реальными примерами, т.е. финансиста в студию (ща придёт адепт горы промежуточных вычислений). А с другой стороны не думать об этом чревато. Иногда делать влоб что в методичке опасно для здоровья. alexeyvgи тупо получается правильный результат, каждый раз. Ну только совсем немного простых правил, и всё. Откройте мне глаза. Так немного простых правил это не разве каждой/каждого/каждом ? PS: И да, финансы - конь в вакууме, они разные бывают. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2013, 22:00 |
|
float, numeric
|
|||
---|---|---|---|
#18+
MnioralexeyvgТочность, масштаб и длина (Transact-SQL) для каждой операции, для каждого выражения в каждом запросе?Таки в каждой операции? Деление (и умножение) нумерика на нумерик?Ну в общем да, деление и умножение уже непростые операции в смысле понимания, какой тип получится; для функций тоже сложно. Для сложения и вычитания всё просто. Mnioralexeyvgи тупо получается правильный результат, каждый раз. Ну только совсем немного простых правил, и всё. Откройте мне глаза.Да по сути одно правило - округление при выводе результата, больше ни чему неприятному эта неточность типа не приводит. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 11:46 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Задача. Есть бонусы, которые нужно конвертировать в денюшку. Точность два знака после запятой. В большинстве случае будет умножение типа INT*NUMERIC(16,2), но вот есть вероятность, что потребуется умножать NUMERIC(16,2) или делить. Держать все нюнасы в голове с NUMERIC и не упустить ничего - это проблема. Вот думаю, мне нужно считать с точностью два знака, но переменные создавать желательно с NUMERIC(16,4) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 12:15 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Testor1Задача. Есть бонусы, которые нужно конвертировать в денюшку. Точность два знака после запятой. В большинстве случае будет умножение типа INT*NUMERIC(16,2), но вот есть вероятность, что потребуется умножать NUMERIC(16,2) или делить. Держать все нюнасы в голове с NUMERIC и не упустить ничего - это проблема. Вот думаю, мне нужно считать с точностью два знака, но переменные создавать желательно с NUMERIC(16,4) ?MONEY - напоминает DEC(19,4) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 12:18 |
|
float, numeric
|
|||
---|---|---|---|
#18+
iapTestor1Задача. Есть бонусы, которые нужно конвертировать в денюшку. Точность два знака после запятой. В большинстве случае будет умножение типа INT*NUMERIC(16,2), но вот есть вероятность, что потребуется умножать NUMERIC(16,2) или делить. Держать все нюнасы в голове с NUMERIC и не упустить ничего - это проблема. Вот думаю, мне нужно считать с точностью два знака, но переменные создавать желательно с NUMERIC(16,4) ?MONEY - напоминает DEC(19,4) SMALLMONEY использовать ? Там есть какие-то нюансы как и с NUMERIC ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 12:26 |
|
float, numeric
|
|||
---|---|---|---|
#18+
alexeyvgокругление при выводе результата, больше ни чему неприятному эта неточность типа не приводит.Как же, банальная сумма, чем больше элементов - тем больше погрешность, и бац, копейка куда-то делась. Разве нет? Код: sql 1. 2. 3. 4.
FloatMoney632522563252.211632522563252.25 alexeyvgНу в общем да, деление и умножение уже непростые операции в смысле понимания, какой тип получится; для функций тоже сложно.Бывает делается умножение (деление) нумерика с целыми типами, а там (согласно той же формуле) ничего особо не меняется и опять всё довольно просто. Очень часто делается ошибка когда те же операции не выносят из цикла (хотя это мало влияет на результат) и т.д., т.е. не смешивать тёплое с мягким (*nix way) ... В итоге реальная формула чертовски упрощается. Главное не слушать бухгалтерскую пургу. Типичный бухгалтерБухгалтерия - победа разума над математикой! И другое. Float - тяжёлые процессорные операции. А Money/Decimal - тот же Int/BigInt, просто запятая смещается. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 12:30 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Testor1будет умножение типа INT * NUMERIC(16,2)Это не нумерик на нумерик. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 12:38 |
|
float, numeric
|
|||
---|---|---|---|
#18+
MniorИ другое. Float - тяжёлые процессорные операции.Как сказать... Раньше в PC использовали сопроцессор вычислений с плавающей точкой - помните? Intel 8087... А последние лет 20 в процессорах есть специальные инструкции для этих вычислений. Их специально оптимизируют. Да так, что они по скорости могут превосходить целочисленные. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 12:39 |
|
float, numeric
|
|||
---|---|---|---|
#18+
MniorTestor1будет умножение типа INT * NUMERIC(16,2)Это не нумерик на нумерик.А разве перед умножением типы не приводятся к одному с наибольшим приоритетлм? http://msdn.microsoft.com/ru-ru/library/ms190309(v=sql.110).aspx Смотрю в таблицу по ссылке, и вдруг вижу: а NUMERIC-то там и нет!! Как же так? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 12:42 |
|
float, numeric
|
|||
---|---|---|---|
#18+
iap, Люди добрые :) Скажите как вы большие проекты пишите? :) не хочу теории. Напишите кто и какой тип использует при подобных задачах. Я склоняюсь к использованию SMALLMONEY, но не знаю есть ли у него какие-то нюансы, которые неочевидные, но их надо знать. Кто подскажет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 12:57 |
|
float, numeric
|
|||
---|---|---|---|
#18+
Testor1iap, Люди добрые :) Скажите как вы большие проекты пишите? :) не хочу теории. Напишите кто и какой тип использует при подобных задачах. Я склоняюсь к использованию SMALLMONEY, но не знаю есть ли у него какие-то нюансы, которые неочевидные, но их надо знать. Кто подскажет ?Разве я не написал уже два раза?! MONEY!! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2013, 12:59 |
|
|
start [/forum/topic.php?fid=46&msg=38312562&tid=1706330]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
138ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 252ms |
0 / 0 |