|
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
|
|||
---|---|---|---|
#18+
Как с этим бороться? если добавить round(3 * 63.03;2) получается 189.089996337891. От этого не легче. Заказчик проверяет накладные, как мне кажется, даже не на калькуляторе, а на счетах Как получить 9 копеек? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 12:47 |
|
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
|
|||
---|---|---|---|
#18+
Quiet333, приводи явно форматы Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 13:00 |
|
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
|
|||
---|---|---|---|
#18+
\\\\, Спасибо. пробую ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 13:05 |
|
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
|
|||
---|---|---|---|
#18+
Quiet333Как с этим бороться? если добавить round(3 * 63.03;2) получается 189.089996337891. От этого не легче. Заказчик проверяет накладные, как мне кажется, даже не на калькуляторе, а на счетах Как получить 9 копеек? 1. Код: plaintext 1.
2. Код: plaintext 1.
3. round - не бухгалтерское округление 4. Биться с бумажными накладными все равно не будет в некоторых случаях - изначально неправильно был выбран тип хранения цены. 5. Тип Currency не спасет. Вернее - спасет, если бухгалтерия спустит внятное ТЗ и инструкции по методике округления - где, на каком этапе оно должно производиться. Тогда и даблы прокатят. 6. Все это сводится к тому, чтобы или храниться в копейках, или только в рублях. Но - на это никто не пойдет. Революция, однако... Вникай в матчасть по методам округления и проблемам, связанным с этим. . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 13:34 |
|
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
|
|||
---|---|---|---|
#18+
Quiet333Как с этим бороться? если добавить round(3 * 63.03;2) получается 189.089996337891. От этого не легче. Заказчик проверяет накладные, как мне кажется, даже не на калькуляторе, а на счетах Как получить 9 копеек? Книга "Программирование на Visual Basic 6" авторы Кен Гетц, Майк Гилберт. Страница 97. Глава 2 Операции с числами. Там все про округление (доходчиво) С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 13:41 |
|
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
|
|||
---|---|---|---|
#18+
Quiet333, похоже у вас в таблице поле с ценой имеет тип "Двойное с плавающей точкой", а то и "Одинарное...". Настоятельно рекомендую заменить на "Денежный". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 15:23 |
|
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
|
|||
---|---|---|---|
#18+
ROI, Спасибо. Пошел читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 16:39 |
|
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), Именно так. Замена на денежный поможет бороться с дробными копейками? Сейчас замена на денежный может какую-нибудь подлянку подкинуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 16:42 |
|
Почему в Access 3 * 63.03 = 189.089996337891 не понимаю
|
|||
---|---|---|---|
#18+
Quiet333, А можно посмотреть на всю конструкцию? Похоже, проблема в дальнейших округлениях при приведении типов. Просто Round(3*63.03,2) возвращает четко 189.09 типа Double. Точность теряется при дальнейшем приведении типов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2016, 16:56 |
|
|
start [/forum/topic.php?fid=45&msg=39251868&tid=1613498]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 154ms |
0 / 0 |