Отрицательный ноль .net
Добавлено: 20 июн 2024, 08:17
Доброго времени суток. При переходе с net framework на net мы столкнулись с отрицательным нулем в дробных значениях, обычно, они появляются в ситуации, когда примерно такое число -0.000003 округляется до 3х знаков, и получается -0.000 (есть и другие варианты как получить -0, но именно приведенный пример актуален для нас). В процессе выяснилось, что это связано с использованием в .net Core 3.0 и выше нового стандарта IEEE 754, который, в общем и целом, гласит что double должен соблюдать принцип "туда и обратно" . Более того - оказывается, что "проблема" только лишь в выводе, и если изменить шаблон вывода для дробного числа, то -0 будет выводиться как 0.
Итак проблема заключается в том, что для всего разнообразия отчетов, которые у нас есть - будет весьма проблематично добавлять в них логику по изменению формата вывода, есть ли у вас варианты, как мы можем, например, поменять какую-нибудь настройку StiOptions в отчете, и что бы шаблон вывода у нас автоматически применился на весь отчет?
Мы используем как дизайнер отчетов для их построения, так и Nuget Stimulsoft.Reports.Engine.NetCore 2024.3.1 для отрисовки отчетов. Сам проект использует платформу .Net 6.0, и работает на linux, хотя проблема повторяется и на windows.
На текущий момент у нас есть только одно наиболее адекватное решение - в каждый проект добавлять метод, с помощью которого мы будем выводить значения из ячейки, следовательно и вызов этого метода нужно будет поместить в каждую ячейку. Что даже для одного отчета может быть не простой задачей..
P.S.
Что бы повторить проблему нужно всего-навсего использовать .net, простой пример показан на скрине в C# Interactive версии 4.9.0-1.23560.3
Итак проблема заключается в том, что для всего разнообразия отчетов, которые у нас есть - будет весьма проблематично добавлять в них логику по изменению формата вывода, есть ли у вас варианты, как мы можем, например, поменять какую-нибудь настройку StiOptions в отчете, и что бы шаблон вывода у нас автоматически применился на весь отчет?
Мы используем как дизайнер отчетов для их построения, так и Nuget Stimulsoft.Reports.Engine.NetCore 2024.3.1 для отрисовки отчетов. Сам проект использует платформу .Net 6.0, и работает на linux, хотя проблема повторяется и на windows.
На текущий момент у нас есть только одно наиболее адекватное решение - в каждый проект добавлять метод, с помощью которого мы будем выводить значения из ячейки, следовательно и вызов этого метода нужно будет поместить в каждую ячейку. Что даже для одного отчета может быть не простой задачей..
P.S.
Что бы повторить проблему нужно всего-навсего использовать .net, простой пример показан на скрине в C# Interactive версии 4.9.0-1.23560.3