November 17, 2024

I have to admit that the “sub function” and all the other analogous functions (add, mul and div) are quite strange. This function will subtract two numbers. Having functions to do basic arithmetic is not common in programming languages or platforms. Usually, we can do things like “number – number,” but not in Power Automate. This is a source of many “head-scratching moments” since the function looks correct with a minus sign, but Power Automate will return an error.

Usage

It follows a simple pattern.

  1. Number
  2. Number

The function will return the first minus the second number.

Example:

sub(4,2)

will return 

2

It will always return a number.

Limitations

There’s a hard limitation on the size of the numbers you can pass, in this case, 19. Power Automate will return an error for:

sub(12345678901234567891,1)

But it won’t return an error for:

sub(1234567890123456789,1)

However, not returning an error doesn’t mean that the calculation is correct. In the first case, we would expect “1234567890123456788,” but instead, we get “1234567890123456800”. Notice that after the 18th number, all is truncated to zero. This may be a source of errors since no error is returned, but instead, you get an invalid calculation. Be very careful with the size of your number since it won’t return an error, but the result is incorrect.

Recommendations:

  1. Keep the numbers as small as possible and all in variables. Don’t put the numbers directly in the function, at least the first one. It’s quite useful to have the second hardcoded when performing some pre-defined actions like decrementing a variable.
  2. Don’t nest it. You may nest operations, but it will make debugging a lot harder. Do the calculations in individual steps to see the results in each one and see if you get the desired value.
  3. Please note that formulas may have localization-based differences. For example, you should write “sub” with “separating each of the arguments, but if your regional settings are set to Portugal, you should use “;” instead.

Sources:

Microsoft’s sub Function Reference

Back to the Power Automate Function Reference.

Photo by Samuel Regan-Asante on Unsplash

Manuel Gomes

I have 18 years of experience in automation, project management, and development. In addition to that, I have been writing for this website for over 3 years now, providing readers with valuable insights and information. I hope my expertise allows me to create compelling, informative content that resonates with the audience.

View all posts by Manuel Gomes →

One thought on “Power Automate: sub Function

  1. “Notice that after the 18th number, all is truncated to zero.”

    In this case you probably mean ‘digits’ instead of numbers. Useful warning though.

Leave a Reply

Your email address will not be published. Required fields are marked *

Mastodon