Matlab equivalent to Java bigdecimal rounding of Half_up?

조회 수: 3 (최근 30일)
Derek
Derek 2024년 5월 31일
댓글: Derek 2024년 6월 4일
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().

채택된 답변

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by