|
|
|
No FLOAT… DOUBLE only & ROUND
|
|||
|---|---|---|---|
|
#18+
Хочу поделиться… и т.д и т.п. Я использую в таблицах только DOUBLE… Если использовать FLOAT для простых чисел (например, коэффициент 0.5), То вроде бы большой точности после запятой и не надо, но когда умножаешь на него DOUBLE, то получаешь ‘свинью’ в виде округления. И даже если это учесть в расчете, то могут быть проблемы с формированием отчетов. Например: Crystal Reports и QReport считают все итоги в DOUBLE. При расчетах дробных чисел иногда вылазит длинный хвост от округления… Причем не только при умножении/делении, а даже при простом сложении… Вроде просто: A + B + C = C + B + A Но не для дробных чисел… Все дроби хранятся с плавающей запятой и обеспечивают необходимое количество ДЕЙСТВУЮЩИХ знаков... (а не после запятой) Для простоты возьмем - ограничение в ТРИ знака и посмотрим, что получится: Три числа: 1.05, 1.05 и 10.1 1.05 + 1.05 = 2.1 2.1 + 10.1 = 12.2 10.1 + 1.05 = 11.2 (округление третьего знака) 11.2 + 1.05 = 12,3 (округление третьего знака) Итог получится разный, даже если не округлять, а отбрасывать… Для сложения и вычитания, я использую процедурки с округлением… Вроде таких проблем не замечал… Может кому пригодится... В качестве n – 10, 100… или 60, 120… (для времени) Кусочек SQL: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Успехов ВАМ… Дерзайте… zow@temz.tomsk.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 11:28:30 |
|
||
|
No FLOAT… DOUBLE only & ROUND
|
|||
|---|---|---|---|
|
#18+
Спасибо! // для оформления текстов программ используйте тег [SRC][/SRC] вокруг текста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 11:43:35 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=467&tid=1578476]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 318ms |

| 0 / 0 |
