SSRS 2 десятичных знака с использованием приведения, форматирования и т. Д., Но сумма получается неправильной

#sql-server #excel #csv #reporting-services #decimal

#sql-server #excel #csv #службы отчетов #десятичная

Вопрос:

Использование SSRS для создания отчета из SQL, сохранение его в Excel для последующего сохранения в CSV (из-за форматирования)

У меня есть чистые значения до разных знаков после запятой. Столбец A равен net * X, а отдельный столбец B, который указывает, что net является отрицательным или положительным значением

Поле C — это сумма (net * X), т. Е.:

     =Sum (
// based on Column B, its a positve or a negative value
    IIf(Fields!TranType.Value="X", Fields!Net.Value * -1, Fields!Net.Value) 
    ) * Parameters!UnitPrice.Value
 

Моя проблема здесь в том, что я пробовал round(net,2), Format(net, ###.##), Cast(net, КАК ДЕСЯТИЧНОЕ число (10,2)). Теоретически сумма столбца A (с данными из столбца B) должна равняться результату в поле C, но я всегда отклоняюсь от 0,01 до 0,04.

Кто-нибудь может порекомендовать, как лучше управлять десятичными знаками, чтобы сумма столбца A = поле C?

Пожалуйста, обратите внимание, что я загружаю список в Excel, в Excel он выглядит правильно, когда я делаю сравнение, но когда я сохраняю в CSV и загружаю в другую программу, которая проверяет данные, она жалуется на неверность 0,01. По сути, Excel отображает данные правильно, CSV тоже отображается правильно.

Комментарии:

1. Отредактируйте свой вопрос и покажите свои фактические выражения и включите типы данных всех используемых столбцов Также было бы полезно, если бы вы могли опубликовать некоторые примеры данных, показывающие проблему с ожидаемыми результатами.

2. Net — это число с плавающей запятой, UnitPrice — это сумма в долларах, скажем, 100,00 долларов. Все вычисления основаны на чистой стоимости.

3. Кажется, что вы не можете суммировать с числом с плавающей запятой, поскольку это только приблизительное число.