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

?CCur(3 * CCur(63.03))
 189,09 
...
Рейтинг: 0 / 0
07.06.2016, 13:05
    #39251868
Quiet333
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
\\\\,
Спасибо. пробую
...
Рейтинг: 0 / 0
07.06.2016, 13:34
    #39251903
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
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
07.06.2016, 13:41
    #39251918
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
Quiet333Как с этим бороться?
если добавить round(3 * 63.03;2) получается 189.089996337891. От этого не легче.
Заказчик проверяет накладные, как мне кажется, даже не на калькуляторе, а на счетах
Как получить 9 копеек?
Книга "Программирование на Visual Basic 6" авторы Кен Гетц, Майк Гилберт.
Страница 97. Глава 2 Операции с числами.
Там все про округление (доходчиво)
С уважением.
...
Рейтинг: 0 / 0
07.06.2016, 15:23
    #39252058
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
Quiet333, похоже у вас в таблице поле с ценой имеет тип "Двойное с плавающей точкой", а то и "Одинарное...". Настоятельно рекомендую заменить на "Денежный".
...
Рейтинг: 0 / 0
07.06.2016, 16:39
    #39252159
Quiet333
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
ROI,
Спасибо. Пошел читать.
...
Рейтинг: 0 / 0
07.06.2016, 16:42
    #39252164
Quiet333
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
Анатолий ( Киев ),
Именно так. Замена на денежный поможет бороться с дробными копейками?
Сейчас замена на денежный может какую-нибудь подлянку подкинуть?
...
Рейтинг: 0 / 0
07.06.2016, 16:56
    #39252188
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
Quiet333,

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


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