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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
nick011
Frequent Visitor

Custom Decimal Places

Hello, Looking for a Power Query function similar to MySQL Format() - formats a number to a format like "#,###,###. ##", rounded to a specified number of decimal places, then it returns the result as a string.

 

I have a value column, and a column that states how many decimal places that row value should have. 

 

I need a function that applies that number of decimal places.

1 ACCEPTED SOLUTION
nick011
Frequent Visitor

Thank you. I actually got what was needed from just this bit 

 

Number.Round([PrimaryValue],[DecimalPlaces]))

View solution in original post

5 REPLIES 5
nick011
Frequent Visitor

Thank you. I actually got what was needed from just this bit 

 

Number.Round([PrimaryValue],[DecimalPlaces]))

That's great 




Did I answer your question? Mark my post as a solution! And Kudos are appreciated

Proud to be a Super User!




LinkedIn






bhanu_gautam
Super User
Super User

@nick011 , You can use below mentioned M-Code in Custom column to modify format

 

FormattedValue = Text.FromNumber([Value], "0." & Text.Repeat("0", [DecimalPlaces]))

 

Value is the numeric value to be formatted

Decimal Places is the number of decimal places to format the value to




Did I answer your question? Mark my post as a solution! And Kudos are appreciated

Proud to be a Super User!




LinkedIn






Thanks for your quick response. However, the following error message was received.

 

"Expression.Error: The name 'Text.FromNumber' wasn't recognized. Make sure it's spelled correctly"

 

 

Try this one 

 

FormattedValue =
let
value = [Value],
decimalPlaces = [DecimalPlaces],
roundedValue = Number.Round(value, decimalPlaces),
textValue = Text.From(roundedValue),
decimalPointIndex = Text.PositionOf(textValue, "."),
formattedValue = if decimalPointIndex = -1 then
textValue & "." & Text.Repeat("0", decimalPlaces)
else
textValue & Text.Repeat("0", decimalPlaces - (Text.Length(textValue) - decimalPointIndex - 1))
in
formattedValue




Did I answer your question? Mark my post as a solution! And Kudos are appreciated

Proud to be a Super User!




LinkedIn






Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.