Matlab equivalent to Java bigdecimal rounding of Half_up?

4 views (last 30 days)
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

Steven Lord
Steven Lord on 31 May 2024
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
Derek
Derek on 4 Jun 2024
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)

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!