![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 знаков после запятой
Это только так кажется.