atan2(0, -55) is different from atan2(-1*0, -55)
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Steven Lord
il 9 Set 2016
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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Numbers and Precision in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!