|
ADODB.Connection. Значение числового поля при получении из Access в 1С меняется с 0.005 на
| ☑ |
0
nature2002
13.11.19
✎
13:03
|
ADODB.Connection. Значение числового поля при получении из Access в 1С меняется с 0.005 на 0,00499999988824129. Почему так происходит?
В 1С только получаю, ничего не преобразую. В Access тип поля "одинарное с плавающей точкой" число десятичных знаков "Авто".
Код ниже:
Конект = новый COMОбъект("ADODB.Connection");
Конект.Provider = "MSDASQL.1";
Конект.Open("Driver={Microsoft Access Driver (*.mdb)};Dbq=" + СокрЛП(ИмяФайла) + ";Uid=Admin;Pwd=;");
Х = Конект.Execute("SELECT
| *
|FROM FinTool
| WHERE (FinTool.FinToolID="4043");
|");
Х.MoveFirst();
поле = Х.Fields("AccCouponInc").Value; //меняется с 0.005 на 0,00499999988824129
|
|
1
Индиго
13.11.19
✎
13:07
|
фича 1С.
Округляй полученное и не парься
|
|
2
Жан Пердежон
13.11.19
✎
13:08
|
ключевое: "одинарное с плавающей точкой"
|
|
3
nature2002
13.11.19
✎
13:09
|
Не получится округлять, потому что данные могут быть с разной точностью. Нужны данные, записанные в Access, без округления.
|
|
4
nature2002
13.11.19
✎
13:10
|
Для других полей с дробной частью ситуация такая же.
|
|
5
ДенисЧ
13.11.19
✎
13:11
|
Это нормально для COM-соединений.
|
|
6
nature2002
13.11.19
✎
13:13
|
(2) Поменяла на "двойное с плавающей точкой" - ситуация та же.
|
|
7
nature2002
13.11.19
✎
13:23
|
как быть?( такие числа не позволяют получить нужный результат.
|
|
8
nature2002
13.11.19
✎
13:26
|
Если округлять, то не понятно до скольки. Могут быть 0,1, 0,005, 0,000002 и так далее...
|
|