Some problem about ceil()
이전 댓글 표시
The result of ceil(215.08/0.152) is 1416. However, it should be 1415 in practice. This makes a further mistake for the latter calculation. How can I avoid this problem?
댓글 수: 2
Star Strider
2017년 7월 12일
Your image did not appear.
Using round instead of ceil returns 1415.
Edmond Dantes
2017년 7월 12일
채택된 답변
추가 답변 (1개)
Guillaume
2017년 7월 12일
As others have commented, this is normal behaviour for computers using ieee floating points. Switching to some non-binary storage system (e.g. .Net System.Decimal) is an option. Alternatively, you can round your result to something with less decimal, then use ceil on that:
ceil(round(215.08/0.152, 8))
While the above works for this particular case, I'm sure that some counterexamples could be found.
카테고리
도움말 센터 및 File Exchange에서 Common Operations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!