Страница 1 из 1

Тип результата итоговой функции в CrossTab

Добавлено: 06 сен 2018, 14:38
dsrozhko
Добрый вечер!

В источнике данных имеется колонка с типом значений double, в которой значения находятся между -1.79769313486232E+308 и 1.79769313486232E+308 (минимальным и максимальным возможным значением для типа double ответственно). При предварительном просмотре приложение выдаёт исключение, текст которого прикреплён к данному сообщению.

Насколько я правильно понимаю - данная ситуация возникает из-за того, что CrossTab использует функции для расчёта итогов, которые по умолчанию возвращают тип Decimal. Исходя из документации (Итоги связанные с бэндами -> https://www.stimulsoft.com/documentatio ... _bands.htm) я так понимаю - существует возможность для других бэндов изменить тип возвращаемого значения итоговой функции на Double или Int64. Существует ли данная возможность для CrossTab?

Re: Тип результата итоговой функции в CrossTab

Добавлено: 11 сен 2018, 10:26
Ivan
Здравствуйте.

На данный момент в коде CrossTab жестко прописано, что все числовые значения для рассчётов преобразуются в Decimal.
Это связано с известной проблемой округления double-типа. Например 0.27 + 0.31 = 0.58000000000000007
Тип Decimal является более точным, поэтому и используется у нас в большинстве случаев по умолчанию.
К сожалению, в CrossTab изменить это на данный момент нельзя.

Спасибо.