powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / точность данных ( сравнение числовых типов)
14 сообщений из 14, страница 1 из 1
точность данных ( сравнение числовых типов)
    #32258587
Valer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть три поля
m1 m2 m3 = m1*m2

5250 132.65 696412.44 m1,m2, m3 single
5250 132.65 696412.44 m1,m2, m3 double
5250 132.65 696412.50 m1,m3 single ; m2 money

правильная только последняя строка
хотя вроде точность double выше
может кто сталкивался с подобным
или надо всю нецелую цифирь переводить под тип money ?
на других данных проблем нет
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32258612
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П%%здеж все это
Ошибки при работе с числами с плавающей точкой конечно есть, но не таких размеров.
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259383
Valer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вырыжаться надо культурнее
лоху могу кинуть базу с 1 таблицей и 1 формой (A97)
пускай посмотрит
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259399
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на фига мне что-то кидать? Форму с таблицей я и сам могу сделать.
На самом деле доступ к мылу ограничен. Если хочешь - выкладывай куда-нибудь свою чудо базу. Хотя и на пальцах можно объяснить наверное - как именно ты такие данные получаешь.
Те цифры которые ты привел - нормально перемножаются и дают правильный результат как в VBA, так и в SQL-запросах. Во всех трех случаях. Так что тараканы в другом месте должны быть.
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259402
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 Dim m1 As Single
 Dim m2 As Single
 Dim m3 As Single
 
 m1 =  5250 
 m2 =  132 . 65 
 m3 = m1 * m2
 Debug.Print m3

у меня такая хрень дает ответ вообще 696412,4
и с double то же самое.
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259415
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бред какой-то
Работало же
У меня сейчас с синглом - тоже 696412,4
С даблом - 696412.5
Вчера точно помню что результаты были одинаковые. И это пугает
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259418
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да с даблом я погорячился, там все ок :)
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259427
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я вчера с синглом не проверил? Хз...
В если в таблице числа хранятся и запросом перемножаются - там все ок, щас еще раз проверил. Что 4-х байтовые, что 8-байтовые.
Ну значит опаньки с синглом. Был о нем слишком хорошего мнения (потому что не использовал никогда)
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259435
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а еще одна интересная вещь в тему.
попробуйте поставить тип поля в таблице
Числовой (с плав точкой 4 байт)
а затем в таблице набрать число 158001,25
и оно превратится в 158001,20.
Вообще все что >=100 000 после запятой держит только один разряд.
А ведь этот тип и есть Single в ВБА.
Такая вот арифметика.

P.S. из справки Аксес 97
Single
(с плавающей точкой обычной точности)
4 байт
От -3,402823E38 до -1,401298E-45 для отрицательных значений;
от 1,401298E-45 до 3,402823E38 для положительных значений.

врут и не краснеют.
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259456
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно чудеса
У меня это число (158001,25) превращается в 158001,3, у саши в 158001,2.
Бог есть, и он дает нам знамения - сегодня программировать нельзя.
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259460
Roalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Они не врут, посмотри сколько там разрядов в мантиссе. Да и вообще, что такое 4 байта, умножив
52501 * 132.65 в Single
получишь 6964258, а если еще добавить разрядность, то только экспоненциальная форма.
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259467
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лох:
фак. это я напарил малеха :)
я на конце 4 писал а в пост 5 кинул.
а так у меня тоже 158001,3 получается.
Просто интересно почему Ак не отображает как просят?
ведь хранит дофига, а показывает только часть. Обыдно. :(
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259489
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ладно вам. В JavaScript-е чего-нибудь попишите - вопросы по числам с плавающей точкой отпадут и никогда больше не поднимуться
Но тараканы у VB конечно есть, куда ж без них.
Хуже всего что VB и Jet по разному числа обрабатывают.
...
Рейтинг: 0 / 0
точность данных ( сравнение числовых типов)
    #32259529
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто интересно почему Ак не отображает как просят?
ведь хранит дофига, а показывает только часть.

Если это тебе так интересно - переведи свое число в двоичную дробь, отрежь мантиссу до сколькиужтамнепомню бит, и переведи это обратно в десятичную.
Тогда тебе не так абыдна будет :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / точность данных ( сравнение числовых типов)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]