LERS Framework, дробная часть значения потребления

Раздел для разработчиков по взаимодействию с ЛЭРС УЧЕТ, созданию собственных внешних модулей, экспорту/импорту данных и т.д.

Модератор: Модераторы

Ответить
Айрат
Сообщения: 69
Зарегистрирован: 06 мар 2013, 12:38

LERS Framework, дробная часть значения потребления

Сообщение Айрат » 10 янв 2019, 22:34

Дробная часть значения потребления, получаемая через Lers Framework, отличается от той, которая храниться в базе.
Можно отформатировать полученное значение до определенного количества цифр после запятой, но для разных типов счетчиков это количество разное.
Возможно ли через Lers Framework получить значение идентичное значению в БД.
cmd.png
cmd.png (40.22 КБ) 888 просмотров
БД.png
Иван Славный
Инженер техподдержки
Инженер техподдержки
Сообщения: 6928
Зарегистрирован: 02 мар 2016, 05:45

Re: LERS Framework, дробная часть значения потребления

Сообщение Иван Славный » 11 янв 2019, 03:19

Вы можете просто округлить эти значения. Собственно Managment Studio просто округляет эти значения, потому что если бы они хранились округленными в БД, то и Lers Framework возвращал бы вам такие значения, так как они берутся из БД.
Айрат
Сообщения: 69
Зарегистрирован: 06 мар 2013, 12:38

Re: LERS Framework, дробная часть значения потребления

Сообщение Айрат » 11 янв 2019, 10:07

Иван Славный писал(а):Вы можете просто округлить эти значения. Собственно Managment Studio просто округляет эти значения, потому что если бы они хранились округленными в БД, то и Lers Framework возвращал бы вам такие значения, так как они берутся из БД.
округлить до целой или до какой то цифры после запятой?
в базе они хранятся в таком же виде как и в счетчике, а вот фрейворк выдает другие цифры после запятой
Аватара пользователя
Антон Чичков
Администратор
Администратор
Сообщения: 5463
Зарегистрирован: 16 мар 2010, 07:04
Откуда: Хабаровск

Re: LERS Framework, дробная часть значения потребления

Сообщение Антон Чичков » 11 янв 2019, 10:20

В БД потребление хранится в формате real, который по определению обеспечивает только 7 значащих цифр. Остальное это "мусор"и погрешности арифметики.

Посмотрите внимательнее на вывод SSMS. Во всех значениях только 7 цифр. То есть, выведены значения 1234.567 и 123.4567, но нет ни одного 1234.5678. Кроме случаев когда после запятой встречается ноль, в этом случае после него всё отбрасывается.

От прибора это абсолютно не зависит. Количество значащих цифр в приборе в SQL Server никак не связаны. Вы можете сделать округление по такому же алгоритму, как в SSMS, если это требуется. Мы в АРМ оператора принудительно ограничиваем вывод количеством знаков, которое выбрал пользователь.
Ответить