Precisión De Los Decimales


Objetivo: Precisión De Los Decimales
Hola!.

Estaba haciendo una función de calcular la media de varias notas y quería disminuir la cantidad de decimales en el resultado:
Me decante por el tipo single y no por el tipo Float. Para sorpresa estaba usando esto:

'' Devuelve la media de tres notas
Private Function Media_de_tres_notas(snota1 As Single, snota2 As Single, snota3 As Single) As Single
' Media_de_tres_notas(20,40,60)
' 40
' Media_de_tres_notas(10,30,70)
' 36

Return Round((snota1 + snota2 + snota3) / 3, -2)

End


Si con esta función uso:

Print Media_de_tres_notas(20, 40, 70)


El resultado es: 43,3300018

Al cambiar el tipo del valor que devuelve la función a Float en vez de Sngle:
El resultado es: 43,33

Con Float me ha dado los dos decimales que quería y no tantos.
¿ Cómo es que el tipo Single no ha logrado el mismo efecto ?.

En este caso el valor de las notas van de 1 a 100.

Saludos

Objetivo: Re: Precisión De Los Decimales
Shell:

Es un tema interno de conversión de numeros (y resultados) entre sistema binario (el que usa el ordenador) hacia decimal (el que usamos normalmente) o al contrario: de sistema decimal a binario.

Cuanto más preciso sea el número (por ejemplo usando float), el cálculo es más facil que no se produzca ese "error". Otra forma de que no te de ese error, es redondear a 2 o 3 decimales, y asi "truncas" los resultados.


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4403s (PHP: -81% SQL: 181%)
Consultas SQL: 45 - Debug off - GZIP Activado