гороскоп на сегодня у скорпиона любовный гороскоп совместимости любовный гороскоп на 2017 рак девушка подробнее на этой странице нажмите чтобы увидеть больше ссылка на подробности любовный гороскоп гороскоп совместимости совместимость знаков в любви любовный гороскоп любовный гороскоп гороскоп совместимости парень козерог девушка весы гороскоп совместимость гороскоп на месяц любовный рак гороскоп на след неделю девы любовный гороскоп женщина рыба мужчина весы совместимость гороскоп совместимости он телец она овен совместимость любовный увидеть больше гороскоп дева любовный на сегодня и завтра гороскоп основываясь на этих данных на этой странице гороскоп на совместимость телец и рыбы рак гороскоп весы стрелец совместимость на 2017 год гороскоп ссылка сегодня гороскоп совместимость по гороскопу женщина телец мужчина рак совместимость гороскоп секс гороскоп совместимости читать больше гороскоп любовный на сегодня козерогу гороскоп любовный на завтра для стрельца гороскоп любовный на месяц рыбы женщина совместимость гороскопа лев и овен нажмите для продолжения любовный гороскоп двух львов гороскоп неделю гороскоп стрелец женщина и весы мужчина совместимость в браке гороскоп совместимости весы жен овен муж подробнее на этой странице сексуальный гороскоп близнецы женщин гороскоп совместимости она водолей он телец основываясь на этих данных совместимость по гороскопу близнецы скорпион гороскоп совместимости рак и козерог на 2017 гороскоп козы на 2017 любовный гороскоп на завтра лев любовный женщина одинокая перейти увидеть больше совместимость по гороскопу рыба и дева гороскоп женщины любовный гороскоп скорпиона на 2017 год мужчина гороскоп пифагора совместимости знаков зодиака привожу ссылку любовный гороскоп на рыб сегодня по ссылке гороскоп таблица совместимости по годам сексуальный гороскоп водолея и овна любовный гороскоп на месяц для овнов гороскоп совместимости рыбы женщина и рак мужчина совместимость нажмите чтобы увидеть больше гороскоп совместимости по луне и солнцу вот ссылка гороскоп на совместимость женщина телец любовный гороскоп на месяц весы 2017 гороскоп дева телец совместимость совместимость гороскопов лев скорпион посетить страницу гороскоп совместимости знаков зодиаков таблица фото гороскоп совместимости рыба тигр любовный гороскоп женщина козерог 2017 любовный гороскоп козерог на сегодня женщина любовный гороскоп для девы на сегодня и завтра гороскоп стрелец на завтра женщина любовный составить любовный любовный гороскоп водолей на 2017 гороскоп совместимости по знакам зодиака овен и водолей

Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: osmor
цитата из FAQ fido7.ru.msaccess

1) Q1: Почему ошибочно считаются большие числа типа Currency в SQL?
Q2: Почему SELECT SUM (Single) выдает 27.2900012135506 вместо 27.29?
Q3: Почему Int & Fix для некоторых чисел неверно производят усечение?
Q4: Почему у меня получается 418.4 - 408.8 равным 9.59999999999997?
A: Все эти ошибки связаны с неверной (или вообще не проводимой) нормализацией чисел и преобразования типов в VB[A] и SQL. Следует учесть, что с Jet3.0 SQL реально использует лишь типы Long, Double и String. Byte, Boolean, Integer правильно преобразуются в Long. Date, Single, Currency преобразуются в Double. Последнее преобразование - грубейшее нарушение стандарта, так как Currency перестает быть целочисленным типом, используемым в бухгалтерии для точных расчетов (целочисленный {с фиксир.точкой} тип не обязательно целое). При этом возникают потери точности при больших числах. В ранних версиях Currency работает верно. Преобразование целочисленных значений (или Single) в Double (и, что важнее, обратно) делается криво (и в VB[A] и в SQL), хотя, в отличие от заблуждения (связанного с большОй распространенностью продуктов MS с таким багом), число меньшей значащей разрядности можно (и нужно) представить как число не меньшей значащей разрядности без потери точности.
Интеpесно, что пpедставление целого числа как Double не вызывает потеpи точности ни в VBA ни в SQL, сбой пpоисходит только для выpажений, пpичем даже для типа: (Val+0) (!!).
Обработка чисел с плавающей точкой по идее (из институтского курса:) должна заканчиваться округлением до пределов точности вычислений (с учетом того, что операции с плавающей точкой выполняются в расширенном формате). Увы, эта операция не производится (почему?). Отсюда 4/2=1.99...97
Рекомендации:
- где только возможно используйте целочисленные типы (Byte, Integer, Long, Currency);
- вместо Int и Fix в пpеделах точности 3 знаков после запятой использyйте для окpyгления Format(CCur(vVal), "#."), а для усечения - Format(CCur(vVal - SGN(vVal) * 0.5), "#.");
- хотя бы не используйте Int/Fix внутри выражений и выражения внутри них;
- явным образом следите за преобразованиями типов и корректируйте их;
- учитывайте, что Currency (Jet3.0+) имеет из 19 цифр только 16 значащих;
- если при работе с плавающей точкой достаточно точности Single, то проще считать числа как Double (впpочем, в SQL/MSA97 они и так будут Double), а pезультат пpиводить к Single, используя функцию CSng.
(Victor Maslovski, 5030/153.10)


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.