Имя: Пароль:
1C
1С v8
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 и так далее...