如何删除小数点后的零作为 SSRS 中的表达式

How to remove zeroes after the decimal point as an expression in SSRS

我的 SSRS 报告中的一个文本框中有以下表达式:

=IIF(IsNothing(Lookup(Trim(Fields!venta_Cod_vendedor.Value) & "-" & ReportItems!Textbox233.Value, Fields!AgregarVentas.Value, Fields!venta_prom_sem.Value, "EfectividadDeFrecuencias_Ventas")) = True

,"0"

,IIF(Lookup(Trim(Fields!venta_Cod_vendedor.Value) & "-" & ReportItems!Textbox233.Value, Fields!Agregar.Value, Fields!total_cant_pos.Value, "EfectividadDeFrecuencias_Total") <> "0"

,FormatNumber(Lookup(Trim(Fields!venta_Cod_vendedor.Value) & "-" & ReportItems!Textbox233.Value, Fields!AgregarVentas.Value, Fields!venta_frecuencia.Value, "EfectividadDeFrecuencias_Ventas")
/ Lookup(Trim(Fields!venta_Cod_vendedor.Value) & "-" & ReportItems!Textbox233.Value, Fields!Agregar.Value, Fields!total_cant_pos.Value, "EfectividadDeFrecuencias_Total"),2)

,"0"))

那个除法会给我一个 int64 数字,15 位数字(如果这样的数学运算给出那个小数位数)。

所以结果是:

现在是棘手的部分: 我获取数据集的代码进行了一次循环并转换为十进制,然后显示为 Crystal 报告。

dr.venta_prom_sem = (Convert.ToDouble(dr.total_cant_pos) != 0 ? (Math.Round((Convert.ToDouble(dr.venta_frecuencia) / Convert.ToDouble(dr.total_cant_pos)), 2)).ToString() : "0");

所以这会给我:

如您所见,如果我使用数字格式,1.3 将转换为 1,30,这将是错误的,与 1 (1,00) 相同。现在 1,339...等会给我 1,34,这很好。

但是检查 1.065,FormatNumber 会给我 1.07 而不是 1.06。

所以问题是,如果(在这种情况下)第三个值为 5,我如何将我的数字格式化为小数点后的最后一个非零数字和 select 较低的值,而不是1.07 为 1.06。我想如果我使用 Ceiling 或 Floor,它会给我整数部分。

试试这个:

=ROUND(1.339,2,MidpointRounding.ToEven)

这给出:1.34

=ROUND(1.065,2,MidpointRounding.ToEven)

给出:1.06

让我知道这是否有帮助。