Re: Прикол с округлением
"Konstantin R. Beliaev" <[EMAIL PROTECTED]> сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED] > > select cast((2674.615-300) as decimal(2,2)), > cast(2674.615 as decimal(2,2)) from rdb$database > получается 2374.61 и 2674.62 > > Куда девалась копейка? > > FB 1.5.3, Win2003 > Странно Ya 889 CS - все нормально. -- Артур Галимов. ФК "ФармМедСервис" (Сочи).
Re: Прикол с округлением
A> Странно Ya 889 CS - все нормально. диалекты уточните ;) -- С уважением Кочмин Александр
Re: Прикол с округлением
Konstantin R. Beliaev wrote: select cast((2674.615-300) as decimal(2,2)), cast(2674.615 as decimal(2,2)) from rdb$database получается 2374.61 и 2674.62 Куда девалась копейка? FB 1.5.3, Win2003 В диалект. -- Regards. Ded.
Re: Прикол с округлением
"Alexandr Kochmin" <[EMAIL PROTECTED]> сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED] > > A> Странно > > диалекты уточните ;) > W2K, Ya 889 CS, третий диалект - все нормально. -- Артур Галимов. ФК "ФармМедСервис" (Сочи).
Re: Прикол с округлением
A> W2K, Ya 889 CS, третий диалект - все нормально. вот вот. а в первом ненормально. -- С уважением Кочмин Александр
Re: Прикол с округлением
Ded wrote: В диалект. Диалект, действительно первый. Значит в третьем будет минус 3 копейки? ;-) А если серьезно: цифры-то почти одинаковые, и операции одинаковые. Я сначала думал на фин.округление, но что-то на него не похоже. Т.е. понятно, что игра идет на последних разрядах float числа, но блин, это уж совсем ни в какие ворота не лезет :-(((
Re: Прикол с округлением
"Konstantin R. Beliaev" <[EMAIL PROTECTED]> сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED] > > Т.е. понятно, что игра идет на последних разрядах float числа, но блин, > это уж совсем ни в какие ворота не лезет :-((( > +- единица в шестом разряде для float - нормально. Это для нас не нормально. А почему бы не перейти на третий диалект? Или есть какие-то подводные камни? -- Артур Галимов. ФК "ФармМедСервис" (Сочи).
Re: Прикол с округлением
"Konstantin R. Beliaev" ... > > select cast((2674.615-300) as decimal(2,2)), > cast(2674.615 as decimal(2,2)) from rdb$database > получается 2374.61 и 2674.62 > > Куда девалась копейка? > > FB 1.5.3, Win2003 Как раз в 1.5.3 я с округлением уже боролся. Алгоритм примерно такой static const double eps_double = 1e-14; static const double eps_float = 1e-5; (long) d + 0.5 + eps, где d - double (или float) и eps = eps_double (или eps_float ) Вот этот eps я и ввёл в алгоритм, раньше его не было В данном же примере d + eps_double меньше чем 237462, на 2.9103830456734 e-011 Увеличивать eps_double рискованно, т.к. идея была в том, чтобы добавить 1 самый младший разряд в двоичном представлении double. Оно, собственно, и так несколько завышенно т.к. точность double 15 цифр -- Хорсун Влад
Re: Прикол с округлением
Dmitri Kuzmenko wrote: а при чем тут float ? Ну хорошо, DOUBLE PRECISION.
Re: Прикол с округлением
ArtGal wrote: +- единица в шестом разряде для float - нормально. Это для нас не нормально. А почему бы не перейти на третий диалект? Или есть какие-то подводные камни? Ага, 50 баз разбросанных по разным городам, самая большая в 10Гб.
Re: Прикол с округлением
Dmitri Kuzmenko wrote: FB2 RC4 - 2674.62, 2674.62 FB 1.5.3 - 2674.62, 2674.62 IB 7.5.1 - 2674.62, 2674.62 Диалект первый возьми, в 3м вроде нормально. А чем ты смотришь? IBExpert
Re: Прикол с округлением
"Konstantin R. Beliaev" <[EMAIL PROTECTED]> сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED] > > Ага, 50 баз разбросанных по разным городам, самая большая в 10Гб. > Да уж... За год не разгребешь. Нам легче. 30 баз в радиусе 70 км. -- Артур Галимов. ФК "ФармМедСервис" (Сочи).