Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

0

Shifting Decimal Places

I've encountered an issue with Power BI shifting the decimal place when connected to an SSAS Multidemensional source in direct query mode, through a data gateway.  This is a critical issue, as reports are returning results that are orders-of-magnitude wrong.

 

I've traced the DAX which Power BI is generating, and run it in an SSMS window.  In the results, the measure in question has a varying number of digits after the decimal place, i.e.

 

1000.5

1234.56

999.9999

 

In Power BI (any visual), the above numbers are being displayed as

 

1

12

1000

 

Note that this is working correctly in Power BI Desktop.  Publishing to Power BI online reveals the issue.

 

The measure in the SSAS cube was originally defined as "inherited" data type, sourced from a SQL view which cast data from several source tables to a common (decimal) data type.  I have changed the view to cast to the money data type, and explicitly set the measure data type to currency, with no change in Power BI's behaviour.

 

I'm trying to construct a simple example which removes as many variables as possible from this issue, so the Power BI team can reproduce it.  I'll add to the thread when I've got something to share.

Status: Delivered
Comments
Anonymous
Not applicable

Duplicated, with a dead-simple example.  I created a new fact from a named query, and built a cube from that fact (and a test dimension).  Create a live query connection to that cube via the Data Gateway.  That's it.

 

Source for my test fact:

SELECT 1 AS TestSID, 1000.5 AS RawMeasure, CAST(1000.5 AS money) AS MoneyMeasure, CAST(1000.5 AS float) AS FloatMeasure
UNION ALL
SELECT 2 AS TestSID, 1234.56 AS RawMeasure, CAST(1234.56 AS money) AS MoneyMeasure, CAST(1234.56 AS float) AS FloatMeasure
UNION ALL
SELECT 3 AS TestSID, 999.9999 AS RawMeasure, CAST(999.9999 AS money) AS MoneyMeasure, CAST(999.9999 AS float) AS FloatMeasure

 

Note that in the cube, I changed the data type for the "Money Measure" from Double to Currency, to match the source query data type.  This is important.

 

Output in Power BI.  Look at what it does to the Money Measure.

 

Table.png

 

 

Anonymous
Not applicable

Another indication that the data is correct, and Power BI is displaying it incorrectly...  The grand total is correct, and the values are still there when a filter is applied.

 

Table with Filter.png

v-haibl-msft
Employee

@Anonymous

 

I find that existing issue has already been reported internally: CRI 28661724

The fix is expected to be implemented on 2/15/2017. Could you please check it later to see if the fix works?

 

Best Regards,

Herbert

Anonymous
Not applicable

It looks like the fix arrived early!  I refreshed my reports this morning in Power BI online (version 13.0.1700.1082), and the numbers have both the correct scale and the correct sign!  Thanks for fixing this critical issue so quickly.

Vicky_Song
Impactful Individual
Status changed to: Delivered