Искаженная сумма полученная через COM-соединение #626629


#0 by Cube
Платформа 8.2.15.318. Все базы файловые. Запрос в УПП (релиз 1.3.26.1): В строке №3 сумма 874,69. В строке №4 сумма 68,60 Подключаюсь к этой же базе УПП из ЗиУП (релиз 2.5.54.1) через v82.COMConnector и получаю: В строке №3 сумма 874,6900000000001 В строке №4 сумма 68,59999999999999 По остальным строкам всё нормально. Есть и другие документы с подобными финтами, но закономерности появления этой бороды я не выявил. На боевых базах в клиент-серверном варианте та же проблема с теми же документами. Кто-нибудь сталкивался с подобным? Есть идеи как это лечить?
#1 by andrewks
"Есть идеи как это лечить?"  Окр, не?
#2 by andrewks
если в самом запросе - cast
#3 by Cube
Я хочу устранить причину, а не бороться со следствием... :)
#4 by andrewks
"Я хочу устранить причину"  неужто собрался ликвидировать 1С? :-)
#5 by Cube
Ты думаешь, что причина в этом?))) Но тогда встанет другая проблема: где взять платформу :р
#6 by чувак
огда ему надо перемещатся в 1960 год, искать Бориса
#7 by andrewks
не, а всё-таки, если в запросе прямо откастовать, всё равно по ком результат искажает, или нет?
#8 by Cube
Я в английском синтаксисе запросов не бельмесо)) Ты предлагаешь выразить как число 15.2 что-ли?) К тому же, запрос - это в УПП, а в ЗиУП я работаю уже с объектом... Запроса нет...
#9 by ДенисЧ
Это нормально
#10 by andrewks
"Ты предлагаешь выразить как число 15.2 что-ли?"  ага
#11 by ДенисЧ
ага.
#12 by Cube
Что именно? И почему? :)
#13 by andrewks
а вообще, насколько помню, 2+2=3,
#14 by ДенисЧ
Потому что по Оле данные передаются не в том виде, что их хранит 1с
#15 by Cube
А если ПФР опять захочет точность пять знаков после запятой? Не, такой вариант отпадает :)
#16 by andrewks
сделаешь (17,5)
#17 by Cube
И какие варианты выхода, кроме как прострелить коленку?)
#18 by DailyLookingOnSunset
Че это Бориса-то. Билли и тех, кто придумал формат хранения вещественных чисел.
#19 by andrewks
ну, много ещё. об стену там,  пузырёк с йадом, и т.д.
#20 by DailyLookingOnSunset
Окр(X,Y)
#21 by Cube
Нужно, чтобы ни одного программиста не пострадало)
#22 by Cube
Уже предлагали.
#23 by Reset
Других нет вариантов
#24 by ДенисЧ
Использовать округление
#25 by Cube
Плохой пост. Сделаю вид, что я его не заметил :))))
#26 by Cube
Что-то как-то жиденько... :) Ещё варианты есть?
#27 by andrewks
есть. не использовать округление
#28 by Reset
Ну другие варианты только через опу. На "той" стороне пихать в строку, передавать строкой например. Округдение самое то. Учитывая, что всегда (вроде) известна точность, особых сложносностей не долдно вызывать
#29 by ДенисЧ
Есть прострелить висок.
#30 by DailyLookingOnSunset
#31 by Cube
Эх... Ладно, пойду округлю до 10 знаков после запятой... :)
#32 by Reset
Зачем до 10? До количества знаком после точки. По примеру из - до 2х
#33 by Cube
Потому что это заплатка (костыль), а не реальное округление. К тому же у меня это в обработке обмена, которая не знает, сумма это или ещё что, а в реальной базе 10 знаков после запятой никто реквизиты делать не будет. Короче, чтобы не переписывать обмен потом, когда что-нибудь изменится.
#34 by Cube
Сделал округление до 10 знаков после запятой, проблема ушла (точнее суслик-то есть, просто его не видно :)).
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С