Matlab equivalent to Java bigdecimal rounding of Half_up?

4 Ansichten (letzte 30 Tage)
Derek
Derek am 31 Mai 2024
Kommentiert: Derek am 4 Jun. 2024
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().

Akzeptierte Antwort

Steven Lord
Steven Lord am 31 Mai 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 Kommentar
Derek
Derek am 4 Jun. 2024
Thank you - yes, I am on an R2020b so I guess I need to upgrade if I want this function.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by