Matlab equivalent to Java bigdecimal rounding of Half_up?

Is there a Matlab function that mimics the Half_up rounding in Java bigdecimal? Specifically, when the decimal portion is exactly .5, round is towards positive infinity. Example: 3.5 rounds to 4 and -3.5 rounds to -3. I didn't see anything like this in the help for round().

 Accepted Answer

In release R2022a we added the argument TieBreaker (which can be used case insensitively) to control how ties are broken in round. Are you using an older release?
x = [3.5, -3.5];
round(x, Tiebreaker = "plusinf")
ans = 1x2
4 -3
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
round(x, Tiebreaker = "tozero")
ans = 1x2
3 -3
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
round(x, Tiebreaker = "fromzero") % default
ans = 1x2
4 -4
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
You can use this with the N input argument too.
round(1.25, 1) % Remember "fromzero" is the default
ans = 1.3000
round(1.25, 1, Tiebreaker = "tozero")
ans = 1.2000

1 Comment

Thank you - yes, I am on an R2020b so I guess I need to upgrade if I want this function.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Release

R2020b

Asked:

on 31 May 2024

Commented:

on 4 Jun 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!