“I’m using Power Automate to send an email with proposal after it’s approved, but the numbers format for price and percentage look terrible.”
When you work with numbers in Power Automate, it doesn’t format them at all. You get the number as it is. No thousands separator, no characters defining the units, just a simple number. Which is fine for the flow, but it’s not so good for the users. If you send an email to users, or if you include some summary in a task description, it would be better to format the number. Add separators for bigger numbers, add sign for a currency or a percentage, etc.
Format number action
One approach is to use the ‘Format number’ action. Input the number, select a format, and define a locale.
By default it offers only 3 formats, but you can use many more. You can use any of the defined standard formats, or, if that’s not enough, you can even define your own custom format. Just switch the Format to ‘Enter custom value’.
FormatNumber(…) expression
The other solution is to use an expression. It’s a solution when you can’t use an action, or when you don’t want to add an extra action. For example, when you export the data into HTML table to send a report. The previous action ‘Format number’ is just a nicer interface to the formatNumber(…) expression. It has the same three parameters, and uses the same formats.
formatNumber(number, 'format', 'locale')
e.g.
formatNumber(<number>, 'C2', 'cs-CZ') - currency with 2 decimal places
formatNumber(<number>, 'P2', 'cs-CZ') - percentage with 2 decimal places
Summary
If you send any numbers to users, you should format them within the Power Automate flow. It might be easy for flow to read numbers with many digits, but users could be confused. Having proper thousands separators, maybe even with a unit, will make everyone’s life much easier.
I personally prefer the 2nd option – an expression. It’s more versatile, and it doesn’t add an extra action to my flow, not to mention another dynamic content.