Функция Round

Обсуждение Stimulsoft Reports.NET
vea
Сообщения: 23
Зарегистрирован: 01 июл 2024, 11:47

Re: Функция Round

Сообщение vea »

Здравствуйте
Не совсем понятен вопрос.
Имеется в виду, когда для ячейки выбираете TextFormat -> Number, и там количество знаков после запятой автоматически ставилось определённое?
Нет, вопрос немного в другом, давайте пойдем от обратного - от проблемы. В windows округление всегда работало так как и ожидает от него человек, но на linux и net core мы столкнулись с тем что округление "срабатывает неправильно", как ваш коллега и объяснил:
В NetCore начиная с версии NetCore3.0 были сделаны изменения, чтобы вычисления соответствовали стандарту "IEEE 754-2008".
В таком случае мы можем исправить проблему если будем использовать ваш метод Round либо, например, всегда приводить значение к decimal, конечно первый вариант проще, но представьте, сколько ячеек нужно будет переписать, для 500 отчетов, что бы вместо {value} добавить {Round(value)}. И это только потому, что просто указав числовой формат ячейки - там вызывается (как вы и сказали) ToString, который возвращает кривые значения, в отличии от вашего метода Round.

(Но тут не совсем понятен механизм, учитывая, что при выставлении общего формата возвращается правильное значение, на что я уже ранее указывал)

Именно по этому хотелось бы обойтись одной настройкой для всех отчетов, что бы везде оставался интуитивно понятный числовой формат, а в нем, в зависимости от этой настройки, будет вызываться либо стандартный ToString, либо ваш метод Round.

Дополнение:
Но это то решение, которое вижу я. Возможно у вас есть другой вариант, можем его рассмотреть.
Aleksey
Сообщения: 2918
Зарегистрирован: 22 апр 2010, 06:57

Re: Функция Round

Сообщение Aleksey »

Здравствуйте,

Добавили опцию, которая по дефолту выключена:
StiOptions.Engine.ForceConversionToDecimalInTextFormat = false;
если включить ее в true, то в TextFormat Number, Currency and Percentage аргументы типа float и double будут автоматически конвертироваться в Decimal чтобы повысить точность округления.

Будет в следующем билде.

Спасибо.
vea
Сообщения: 23
Зарегистрирован: 01 июл 2024, 11:47

Re: Функция Round

Сообщение vea »

Здравствуйте, хорошие новости - при использовании вашей новой опции мы получаем теперь тот результат, который и ожидаем от расчета, при этом править сам отчет для этого нет необходимости - это именно то, что было нужно, благодарю!
Aleksey
Сообщения: 2918
Зарегистрирован: 22 апр 2010, 06:57

Re: Функция Round

Сообщение Aleksey »

Здравствуйте,

Отлично! Всегда рады помочь.
Ответить