cancel
Showing results for
Did you mean:
New Member

## Rounding up to 15

Hi!

I have been searching the forum, but I can't get to an answer that works.

My flow receives a bunch of parameters, which are slightly modified by the flow, and then passed into API using HTTP request / POST.

• The API requires one of the parameters to be in 15 minute increments.
• The parameter that I start off with, is received in the flow as an integer bigger than zero (0).
• I'm trying to modify this integer, by rounding it upwards.

Input 1 to 15, should be 15

Input 16 to 30, should be 30

Input 31 to 45, should be 45

etc.

I've been at it for 2+ hours, trying to figure out a Compose expression that works, but I'm stuck.
If you have any thoughts, you will be my hero.

Cheers!

1 ACCEPTED SOLUTION

Accepted Solutions

It's not pretty, but this formula will get you what' you're looking for:

mul(
if(
equals(
int(
last(
split(
formatNumber(
div(
float(
item()
),
float(
15
)
),
'0.0'
),
'.'
)
)
),
0
),
int(
formatNumber(
div(
float(
item()
),
float(
15
)
),
'0'
)
),
int(
first(
split(
formatNumber(
div(
float(
item()
),
float(
15
)
),
'0.0'
),
'.'
)
)
),
1
)
),
15
)

The above is a brute-force way of implementing what's known as a 'Ceiling' function which rounds up to the nearest selected significance (in your case, 15).

You should be able to replace every instance of '15' with another whole-number significance (ie: 5) and it'd work just as well.

Also - although you didn't ask for it - just to show how much easier this is in Power Fx, here's the above functionality but implemented in Power Apps:

\$"{ThisItem.Value} => {With(
{
// The value you want to round //
number: ThisItem.Value,
// The multiple to which you want to round.
significance: 15
},
RoundUp(
number / significance,
0
) * significance
)}"

Which results in the following:

Cheers!

5 REPLIES 5
Super User

Hello, @RvdK , try to use this expression accordingly:

if(And(lessOrEquals(triggerBody()['number'],15),greater(triggerBody()['number'],0)),15,
if(And(lessOrEquals(triggerBody()['number'],30),greater(triggerBody()['number'],15)),30,
if(And(lessOrEquals(triggerBody()['number'],45),greater(triggerBody()['number'],30)),45,0)))

 If my reply helped you, please give a 👍 , & if it solved your issue, please 👍 & Accept it as the Solution to help other community members find it more. I am primarily available on weekdays from 6-10 PM CT and 5-10 PM CT on weekends. Visit my Blog: www.powerplatformplace.com

New Member

Hi!
Thanks for giving that a shot, really much appreciated!

That appears to do the trick up until 45, but I'm afraid that I don't have a cap on the value.
The biggest what I've seen would be under a value close to a thousand.

Yes, I could technically keep on expanding what you wrote there, but I would want to keep an open mind that this value can go anywhere.

I had figured something along the line of:

div(triggerBody()['number'],15) # this would become a number that needs to be rounded
float() # to show the two digits behind the dot / comma.
split() # to return these characters

This gets me quite far, but only works IF the number is not a rounded number.

New Member

I found my own answer, which works beautifully, without too many difficult calculations.
Some of you might not like this solution as it takes 5 steps instead of one compose, but..

Beauty of this one is that the input doesn't matter. This scales endlessly.

input
1: initialize var1 - int: div(input,15)
2: initialize var2 - int: mod(input,15)
3: initialize var3 - int:
4: compose: greaterorequals(step2,1)
5: condition: output(step4) is equal to true()
if no: set var3: mul(step1,15)

It's not pretty, but this formula will get you what' you're looking for:

mul(
if(
equals(
int(
last(
split(
formatNumber(
div(
float(
item()
),
float(
15
)
),
'0.0'
),
'.'
)
)
),
0
),
int(
formatNumber(
div(
float(
item()
),
float(
15
)
),
'0'
)
),
int(
first(
split(
formatNumber(
div(
float(
item()
),
float(
15
)
),
'0.0'
),
'.'
)
)
),
1
)
),
15
)

The above is a brute-force way of implementing what's known as a 'Ceiling' function which rounds up to the nearest selected significance (in your case, 15).

You should be able to replace every instance of '15' with another whole-number significance (ie: 5) and it'd work just as well.

Also - although you didn't ask for it - just to show how much easier this is in Power Fx, here's the above functionality but implemented in Power Apps:

\$"{ThisItem.Value} => {With(
{
// The value you want to round //
number: ThisItem.Value,
// The multiple to which you want to round.
significance: 15
},
RoundUp(
number / significance,
0
) * significance
)}"

Which results in the following:

Cheers!

New Member

Thanks, I will give this a shot.

Announcements

#### Check Out the February 2024 Dynamics 365 Newsletter

Some of our most active Power Platform Community members are also active in our D365 Community. This month, we are excited to share the latest news from the D365 Community with you.   Our Dynamics365 Community has updated yet again! Since launching in June of 2023, the new Community has seen consistent updates and exciting new ways to feature and celebrate its members. In the latest edition of the Dynamics365 Community newsletter, you can see the new Leaderboard feature! This feature showcases which Community members have earned the most points over the previous month, enabling them to see how they are doing with their engagement--and their progress toward Super User status. Visit the leaderboard for yourself: https://aka.ms/d365clb     Read the whole newsletter featuring the new leaderboard as well as the D365 Monthly Community Member spotlight, FastTrack Tech Talks, upcoming events, and more. February 2024 Dynamics 365 Community Newsletter

#### Celebrating a New Season of Super Users with Charles Lamanna, CVP Microsoft Business Applications

February 8 was the kickoff to the 2024 Season One Super User program for Power Platform Communities, and we are thrilled to welcome back so many returning Super Users--as well as so many brand new Super Users who started their journey last fall. Our Community Super Users are the true heroes, answering questions, providing solutions, filtering spam, and so much more. The impact they make on the Communities each day is significant, and we wanted to do something special to welcome them at our first kickoff meeting of the year.   Charles Lamanna, Microsoft CVP of Business Applications, has stressed frequently how valuable our Community is to the growth and potential of Power Platform, and we are honored to share this message from him to our 2024 Season One Super Users--as well as anyone who might be interested in joining this elite group of Community members.     If you want to know more about Super Users, check out these posts for more information today:    Power Apps: What is A Super User? - Power Platform CommunityPower Automate: What is A Super User? - Power Platform Community Copilot Studio: What is A Super User? - Power Platform Community Power Pages: What is A Super User? - Power Platform Community

#### February 2024 User Group Update: Welcoming New Groups and Highlighting Upcoming Events

It's a new month and a brand-new year, which means another opportunity to celebrate our amazing User Groups!Each month, we highlight the new User Groups that have joined the community. It's been a busy season for new groups, because we are thrilled to welcome 15 New User Groups! Take a look at the list below, shared by the different community categories. If your group is listed here, give this post a kudo so we can celebrate with you!   We love our User Groups and the difference they make in the lives of our Community! Thank you to all the new User Groups, new User Group leaders--we look forward to hearing about your successes and the impact you will leave!   In addition to our monthly New User Group spotlight, it's a great time to share some of the latest events happening in our User Group community! Take a look at the list below to find one that fits your schedule and need! There's a great combination of in-person and virtual events to choose from. It's a great time of year to connect and engage with User Groups both locally and online. Please Welcome Our NEW User Groups   Power Platform: Heathcare Power Platform User Group Power Platform Connect Hub Power Platform Usergroup Denmark Mexico Norte- Power Platform User Group Pune Power User Group Sudbury Power Platform User GroupMicrosoft User Group GhanaMPPBLR - Microsoft Power Platform Bengaluru User Group Power Apps:   Myrtle Beach Power Platform User GroupAnanseTechWB PowerApps Copilot Studio: Pathfinders Power Platform Community Dynamics365: Cairo, Egypt MSD 365 Business Central/NAV/F&O User GruopMS Dynamics 365 Business Central LatamCincinnati OH D365 F&O User Group February User Group Events February 2024 Cleveland Power Platform User GroupPortallunsj - Februar 2024Indiana D365/AX February User Group MeetingQ1 2024 KC Power Platform and Dynamics 365 CRM Users Group