atan2(0, -55) is different from atan2(-1*0, -55)
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Kyle
 el 8 de Sept. de 2016
  
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 comentarios
Respuesta aceptada
  Steven Lord
    
      
 el 9 de Sept. de 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.
1 comentario
Más respuestas (0)
Ver también
Categorías
				Más información sobre Logical en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!