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

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

SUM в TQuery - точность суммирования [D5, dBase, FoxPro]


Максим ©   (2002-12-19 11:24:00) 

Подскажите, а как побороть такую ситуацию:
SELECT O.DATAO, SUM(O.SUM_OPL) AS OPL, K.KODORG и т.д
Данные в поле Sum_opl не более 2 знаков после запятой, а сумма в запросе иногда выдает типа 293,09998 ?


Reindeer Moss Eater   (2002-12-27 10:21:00) [1]

Single,Double,Real48 - это плавающая точка.
Используя эти типы данных про понятие равнонадо забыть.


Максим   (2002-12-27 10:15:00) [2]

Справка из хелпа
Type Range Significant digits Size in bytes
Real48 2.9 x 10^–39 .. 1.7 x 10^38 11–12 6
Single 1.5 x 10^–45 .. 3.4 x 10^38 7–8 4
Double 5.0 x 10^–324 .. 1.7 x 10^308 15–16 8
и т.д.

И что из этого? если у меня число 123145,50 то оно будет представлено например 123145,49999999 - так что-ли, но ведь тогда вся арифметика полетит к черту. Значащих цифр то 15 допускается в этом типе. Главный вопрос в том, как умудряется число не более чем из 10 цифр, из них два после запятой перевести в число не равное ему. Спасибо MsGuns за подсказку, я про эту функцию забыл


Anatoly Podgoretsky   (2002-12-23 12:10:00) [3]

Максим © (20.12.02 09:29)
Ты забудь, что там в ФоксПро, а думай о Double и особенности представления чисел с плавающей запятой, а в ФоксПро они представлены в BCD


Reindeer Moss Eater   (2002-12-23 11:53:00) [4]

но при этом некто не может вразумительно ответить - вопрос то так и не решен

Кусочек класса TField:
property AsFloat: Double;


MsGuns   (2002-12-23 11:42:00) [5]

.. CAST(SUM(фа-фа-ля-ля) AS DECIMAL(12,2))AS "SUMMA1"


Максим   (2002-12-23 10:58:00) [6]

но при этом некто не может вразумительно ответить - вопрос то так и не решен


Delirium^.Tremens   (2002-12-20 09:33:00) [7]

Есть ощущение, что все спрашивающие занимаются одной и той же задачей. И у них одновременно возникают одни и те же вопросы.


Максим   (2002-12-20 09:29:00) [8]

то есть кажется?
Таблица исходник - база Foxpro2.6 где указано поле SUM_OPL типа NUMBER 8,2 - там физически неоткуда взяться больше 2 знаков!! И насколько я знаю математику :-)), то при сложении некак более 2 знаков после запятой не будет


Reindeer Moss Eater   (2002-12-19 11:29:00) [9]

Точность будет Double


ЮЮ   (2002-12-19 11:28:00) [10]

> Данные в поле Sum_opl не более 2 знаков после запятой
Это только так кажется.


Наверх

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