atan2(0, -55) is different from atan2(-1*0, -55)
조회 수: 2 (최근 30일)
이전 댓글 표시
Just found that
>> atan2(0, -55)
ans =
3.1416
>> atan2(-1*0, -55)
ans =
-3.1416
I don't understand how is this possible? -1 *0 doesn't equal to 0?? How can I convert such behaviour to C++?
댓글 수: 0
채택된 답변
Steven Lord
2016년 9월 9일
Numerically they are equal.
z = 0;
mz = -0;
z == mz
However, they are not identical.
format hex
z
mz
Note that the sign bits are different. You can see this:
format
plusInf = 1/z
minusInf = 1/mz
If the implementation supports IEEE floating-point arithmetic (IEC 60559),
...
If y is ±0 and x is negative or -0, ±π is returned
This is specifically called out in section 9.2.1 of IEEE 754-2008.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Numbers and Precision에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!