powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
10 сообщений из 10, страница 1 из 1
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39251837
Фотография Quiet333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как с этим бороться?
если добавить round(3 * 63.03;2) получается 189.089996337891. От этого не легче.
Заказчик проверяет накладные, как мне кажется, даже не на калькуляторе, а на счетах
Как получить 9 копеек?
...
Рейтинг: 0 / 0
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39251859
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Quiet333, приводи явно форматы
Код: vbnet
1.
2.
3.
4.
5.
?Cdec(3 * Cdec(63.03))
 189,09 

?CCur(3 * CCur(63.03))
 189,09 
...
Рейтинг: 0 / 0
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39251868
Фотография Quiet333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
\\\\,
Спасибо. пробую
...
Рейтинг: 0 / 0
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39251903
Quiet333Как с этим бороться?
если добавить round(3 * 63.03;2) получается 189.089996337891. От этого не легче.
Заказчик проверяет накладные, как мне кажется, даже не на калькуляторе, а на счетах
Как получить 9 копеек?

1.
Код: plaintext
1.
? 3 * 63.03
 189.09 

2.
Код: plaintext
1.
? round(3 * 63.03, 2)
 189.09 

3. round - не бухгалтерское округление

4. Биться с бумажными накладными все равно не будет в некоторых случаях - изначально неправильно был выбран тип хранения цены.

5. Тип Currency не спасет. Вернее - спасет, если бухгалтерия спустит внятное ТЗ и инструкции по методике округления - где, на каком этапе оно должно производиться. Тогда и даблы прокатят.

6. Все это сводится к тому, чтобы или храниться в копейках, или только в рублях. Но - на это никто не пойдет. Революция, однако...

Вникай в матчасть по методам округления и проблемам, связанным с этим.
.
...
Рейтинг: 0 / 0
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39251918
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Quiet333Как с этим бороться?
если добавить round(3 * 63.03;2) получается 189.089996337891. От этого не легче.
Заказчик проверяет накладные, как мне кажется, даже не на калькуляторе, а на счетах
Как получить 9 копеек?
Книга "Программирование на Visual Basic 6" авторы Кен Гетц, Майк Гилберт.
Страница 97. Глава 2 Операции с числами.
Там все про округление (доходчиво)
С уважением.
...
Рейтинг: 0 / 0
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39252058
Quiet333, похоже у вас в таблице поле с ценой имеет тип "Двойное с плавающей точкой", а то и "Одинарное...". Настоятельно рекомендую заменить на "Денежный".
...
Рейтинг: 0 / 0
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39252159
Фотография Quiet333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,
Спасибо. Пошел читать.
...
Рейтинг: 0 / 0
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39252164
Фотография Quiet333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев ),
Именно так. Замена на денежный поможет бороться с дробными копейками?
Сейчас замена на денежный может какую-нибудь подлянку подкинуть?
...
Рейтинг: 0 / 0
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39252188
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Quiet333,

А можно посмотреть на всю конструкцию? Похоже, проблема в дальнейших округлениях при приведении типов. Просто Round(3*63.03,2) возвращает четко 189.09 типа Double. Точность теряется при дальнейшем приведении типов.
...
Рейтинг: 0 / 0
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
    #39252737
Фотография Quiet333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin,
Сделал кусочек базы. Так в нем ВСЕ работает как надо .
В общем с типами нужно разбираться...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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