如何在Power BI的DAX上控制小数精度

Ken*_*ssa 0 dax powerbi powerbi-datasource

假设我有一个带有字段Field1的表“ Table1”,一个带有Field2的表“ Table2”。我在“ Table1”,“ CField”中有另一个具有公式的计算列:

CField = ROUND(Table1 [Field1] * RELATED(Table2 [Field2]); 2)

该公式总体上运作良好,但有时无法提供正确的值。例如 :

  • 栏位1 = 50.23
  • 栏位2 = 0.065

在计算器中计算得出3.26495。四舍五入到小数点后两位应为3.26,但在这种情况下,PowerBI为3.27。

我最好的假设是Field1 * Field2的结果计算为CURRENCY,因此在四舍五入为3.27之前四舍五入为3.265。

我在这里的问题是:是否有一种方法可以强制Power BI保持所需的精度并获得我想要的3.26结果?

编辑:3.27不仅仅是显示问题。如果我在显示的值上加上小数,则得出3.27000。

Fox*_* Ng 5

我以某种方式能够通过有关数据类型的特定设置来重现这种情况。您可以检查是否与您的情况相同。

如您所说,这与Format(显示问题)无关。问题出在Data type。当所有三列都设置Decimal Number为时,Power BI返回3.26

十进制数

但是,当Field1更改Fixed decimal number为时,Power BI返回3.27

固定十进制数

根据Power BI文档

固定的十进制数 –十进制分隔符的位置固定。小数点分隔符始终在其右边四位数字,并允许19位有效数字。它可以代表的最大值是922,337,203,685,477.5807(正或负)。在四舍五入可能导致错误的情况下,“固定十进制数”类型很有用。

因此,对此的一种解释是将结果3.26495舍入为3.2650(小数点后四位),然后舍入为3.27(通过DAX函数舍入)。

结论: 将所有更改Data typeDecimal Number应解决舍入误差问题。


尽管我仍然不清楚为什么在Field1有数据类型时会发生这种情况Fixed decimal number,但是没有CField。欢迎任何补充意见。