假设我有一个表“Table1”,字段为Field1,“Table2”为Field2 . 我在“Table1”中有另一个计算列,“CField”具有公式:
CField = ROUND(表1 [Field1] *相关(表2 [Field2]); 2)
该公式整体运作良好,但有一段时间它没有给出正确的 Value . 例如 :
-
Field1 = 50.23
-
Field2 = 0.065
在计算器中计算得到3.26495 . 舍入到2位小数应该给出3.26,但在这种情况下,PowerBI给出3.27 .
我最好的假设是Field1 * Field2的结果计算为CURRENCY,因此在舍入到3.27之前四舍五入为3.265 .
我的问题是:有没有办法强制Power BI保持我需要的精度并得到我想要的3.26的结果?
编辑:3.27不只是一个显示问题 . 如果我将小数添加到显示的值,它给出3.27000 .
2 回答
不知怎的,我能够通过关于数据类型的特定设置重现这种情况 . 您可以检查这是否与您的情况相同 .
如你所说,这与
Format
无关(即显示问题) . 问题出在Data type
. 当所有三列都设置为Decimal Number
时,Power BI返回3.26
.但是,当
Field1
更改为Fixed decimal number
时,Power BI将返回3.27
.根据Power BI documentation:
因此,对此的解释是结果3.26495四舍五入为3.2650(四位小数),然后四舍五入为3.27(由DAX函数舍入) .
Conclusion: 将所有
Data type
更改为Decimal Number
应解决舍入错误问题 .虽然我仍然不清楚为什么当
Field1
的数据类型为Fixed decimal number
而不是CField
时会发生这种情况 . 欢迎提出任何补充意见 .检查列数据类型 . 在Power BI中,十进制实际上是一个浮点,因此不应与其他数据库产品(如SQL Server)中的十进制数据类型混淆 .