Visual Basic - Error de Precision con trigonometricas Sin o Cos

Life is soft - evento anual de software empresarial
   
Vista:

Error de Precision con trigonometricas Sin o Cos

Publicado por Luis (1 intervención) el 17/02/2008 06:46:54
Pues bueno haciendo un programa sencillo donde solo se calcula el seno o coseno de un valor entre 0 y 359, resulta que al acercarse este a los 0, 90, 180 o 270 grados me sale un valor muy extraño :S.

Es algo asi:

Dim valor As Double
Private Const PI As Double = 3.14159265358979
.
.
.
valor = (HScroll1.value * PI) / 180
Label1.Caption = Abs(Cos(valor))
Label2.Caption = Abs(Sin(valor))


ahi lo convierto de grados a radianes el valor de un scroll y todo muy bien excepto cuando la variable valor se acerca a los 90 grados porque en ese Label1 me salen cosas en el label1 como: Cos 86 = 6,9756 ..... siempre salen los errores en un rango de 5 grados mas o menos de 90 o los demás puntos (0, 180 o 270).

Lo que quiero saber es de que forma es posible corregir esto? de antemano muchisimas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error de Precision con trigonometricas Sin o Co

Publicado por alberto (123 intervenciones) el 17/02/2008 11:01:11
Usando tu código, el valor devuelto para el coseno de 86º me devuelve el valor:
6,97564737441268E-02
o lo que es lo mismo 0.0697564737441268
valor que no dista mucho de 0,069756473744125300775958835194143, este es el valor devuelto por la calculadora de Windows, lo cual me parece correcto.
lo mismo ocurre con coseno de 90º que devuelve:
1,61554255216634E-15
valor muy cercano al cero.
En ambos casos la diferencia entre el valor real y el valor obtenido es debido a los errores cometidos en la conversión a radianes, que se producen a causa de la imprecisión con la que conocemos PI
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar