Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
round & numeric & float
|
|||
|---|---|---|---|
|
#18+
собственно вот: PG по умолчанию константы с точкой в нумерик приводит Код: plaintext 1. 2. 3. 4. 5. - http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1217 Если бы бухгалтер был магом и чародеем, он несомненно решил бы проблему так, чтобы какой-нибудь саблезубый тигр откусил руку, или хотя бы нечетное количество пальцев нашему волосатому пращуру, придумавшему десятичную систему счисления, чтобы в ней не осталось "середины". Но он выкрутился хитрее — половину отбрасываемых пятерок стал округлять вверх, а половину — вниз. Чтобы его не обвинили в личных пристрастиях, критерием стала цифра перед пятеркой — если она четная, то округление вниз, иначе вверх. Это правило и называется правилом "Бухгалтерского" (или "Банковского") округления. Там-же : Третьи говорили, что это баг от Microsoft, или глюк всех Pentium-ов (или AMD, в зависимости от личных пристрастий). Поэтому хотелось бы знать, существует ли некий общепринятый документ относительно способов округления. И такой документ действительно существует. Это знаменитый стандарт IEEE 754. з.ы. это было как валенком по башек для меня.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 10:56 |
|
||
|
round & numeric & float
|
|||
|---|---|---|---|
|
#18+
т.е. для правильного мат. округления надо все равно сначала привести к нумерику, а сталобыть достаточно писать через приведение к нумерику и взад, а не пользоваться раундом? select t.field::numeric(12,2)::float FROM t; кстати я так и не понял, как получить разницу меж двумя величинами разных типов. при попытке ее вычислить нумерик проведется к флоату, и разницы не будет. какой-то ф-ии типа приведения float к строке с заданной точностью кажется нет. каст float-a к ньюмерику произвольного типа тоже не дает "значащих цифирей". единственно можно нащупать разницу на преобразованиях туда-обратно Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 12:10 |
|
||
|
round & numeric & float
|
|||
|---|---|---|---|
|
#18+
ну видимо да..или перевести всю бд с флоута на нумерик, но все-равно это как-то все не красиво... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 13:01 |
|
||
|
round & numeric & float
|
|||
|---|---|---|---|
|
#18+
Не даром за место устаревшего 'money' в постгресе предлагают использовать numeric а не float. И вообще, float - это одна из главных и наибольших "засад" начинающего программиста. Его ж даже сравнивать в принципе нельзя! Так что "перевести всю бд с флоута на нумерик" не такая уж и ужасная идея (хотя, это смотря какая база) - с float мучиться придеться больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 21:29 |
|
||
|
round & numeric & float
|
|||
|---|---|---|---|
|
#18+
JelisТак что "перевести всю бд с флоута на нумерик" не такая уж и ужасная идея (хотя, это смотря какая база) - с float мучиться придеться больше.кажецца сильно потеряем в скорости арифметики (агрегирования). т.ч. можно оставить флоаты, но затригеренные по бефоре (типо каст к нужной точности нумерика). и с раундом (если потербуется), переопределенным через каст в ньюмерик. Вопрос: можно ли единожды создать свой тип из флоата, определив, что он перед соханением должен каститься в ньюмерик с нужным числом знаков на хвосте, (и взад на автомате) (и переопределив round для него)? JelisИ вообще, float - это одна из главных и наибольших "засад" начинающего программиста. Его ж даже сравнивать в принципе нельзя! опять таки, если не свободен в выборе компонентов для типа (я например перегоняю данные из/через аксесс - юзая ODBC) то засад несколько больше. например если обновлять запись из интерморды акса, имеющую поля с типом timestamp(tz), то велика вероятность напороться на сообщение "запись изменена другим пользоваетем") которая проистекает из того, что реальный запрос на апдейт уходит с перечислением значений всех полученных полей в WHERE, а точность данных в аксесовском DATE/TIME (реально -это float8) много меньше точности в timestampe, и искомая строка для обновления не находится сервером. Приходится пользовать на стороне pg тип abstime для дат и времени (якобы устаревший) или перед сохранением в timestampt заранее огрублять его в триггере BEFORE UPDATE (new.timefield = new.timefield::abstime) - чтобы сравнение давало "совпадение" строк. Т.я. флоаты то как раз сравниваются, а вот флаты с более точными - нет (или надо пририсовывать правило нечеткого сравнения типов в ODBC-ю). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 11:42 |
|
||
|
round & numeric & float
|
|||
|---|---|---|---|
|
#18+
iiiiiiiiiiiiiiiiiiii что реальный запрос на апдейт уходит с перечислением значений всех полученных полей в WHERE А в Аксессе нельзя сделать что бы update только по id был? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 17:49 |
|
||
|
round & numeric & float
|
|||
|---|---|---|---|
|
#18+
Jelis iiiiiiiiiiiiiiiiiiii что реальный запрос на апдейт уходит с перечислением значений всех полученных полей в WHERE А в Аксессе нельзя сделать что бы update только по id был? самому (скажем из кода) послать серверу апдейт по ключу можно и вообще любой правильный апдейт. речь именно об апдейте, посылаемом (самостийно) аксом из стандартной аксовской формы, связанной с данными на основе привязанной по одбс табличке. А в нее он отылает перечень всех полей. Что, с его т.з, "правильно" - ить другой усер мог поменять данные, а тады ой. а из свободной формы генери какие хошь апдейты. и шли. речь то об том, чтобы не переписывать стандартный функционал врукопашку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 18:37 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=308&tid=2005908]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 373ms |

| 0 / 0 |
