Página 1 de 1
mat.sin y math.cos dan valores erroneos
Publicado: 25 Abr 2018, 03:53
por alpha
No entiendo que estoy haciendo mal, debería obtener valores de 0, 1, 0, y -1
El codigo es este
import math
print (math.sin(math.radians(0)))
print (math.sin(math.radians(90)))
print (math.sin(math.radians(180)))
print (math.sin(math.radians(270)))
print (math.sin(math.radians(360)))
Y los resultados que devuelve:
0.0
1.0
1.2246467991473532e-16
-1.0
-2.4492935982947064e-16
¿Por qué para 180 y 360 me devuelve esas cifras? debería dar "cero"
Re: mat.sin y math.cos dan valores erroneos
Publicado: 25 Abr 2018, 12:54
por cornholio
alpha escribió: 25 Abr 2018, 03:53
No entiendo que estoy haciendo mal, debería obtener valores de 0, 1, 0, y -1
El codigo es este
import math
print (math.sin(math.radians(0)))
print (math.sin(math.radians(90)))
print (math.sin(math.radians(180)))
print (math.sin(math.radians(270)))
print (math.sin(math.radians(360)))
Y los resultados que devuelve:
0.0
1.0
1.2246467991473532e-16
-1.0
-2.4492935982947064e-16
¿Por qué para 180 y 360 me devuelve esas cifras? debería dar "cero"
Porque estas en radianes y no en grados.
Re: mat.sin y math.cos dan valores erroneos
Publicado: 28 Abr 2018, 07:58
por alpha
Yo entiendo que "math.radians(90)" me transforma a radianes los valores que yo meto en grados entre parentesis, en este caso 90 grados
de hecho me da valores correctos para cero, noventa y doscientos setenta, que son cero, uno y menos uno respectivamente
Pero en 180 y 360 me da esos extraños valores con decimales
o dicho de otra manera, si lo estoy haciendo mal, ¿como lo hago?
Re: mat.sin y math.cos dan valores erroneos
Publicado: 28 Abr 2018, 08:21
por cornholio
alpha escribió: 28 Abr 2018, 07:58
Yo entiendo que "math.radians(90)" me transforma a radianes los valores que yo meto en grados entre parentesis, en este caso 90 grados
de hecho me da valores correctos para cero, noventa y doscientos setenta, que son cero, uno y menos uno respectivamente
Pero en 180 y 360 me da esos extraños valores con decimales
o dicho de otra manera, si lo estoy haciendo mal, ¿como lo hago?
Tienes toda la razón, lo tenías bien.
En realidad te está dando bien los valores pero sin redondear; los valores de 180 y 360 al estar elevados a -16 son prácticamente cero. Pero para sacar una salida limpia haz un math.round(math.sin(math.radians(180)))