Visual Basic - Problemas con la función Int y Log

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Juan Carlos

Problemas con la función Int y Log

Publicado por Juan Carlos (106 intervenciones) el 16/04/2004 05:29:58

Hola Amigos de LWP
Ocurre lo siguiente: Recurro a la función Int para extraer la parte entera al resultado de aplicar un logaritmo decimal (log neper. con cambio de base). Todo funciona en tanto y en cuanto el argumento del log no sea un múltipo decimal de 10. Por ejemplo el log dec de 1000 es 3 y ese es el resultado que devuelve y muestra la operación, sin embargo al aplicarle la función Int me devuelve 2 , es decir que esta función esta "viendo" un n° menor que 3 contrariamente a lo que se muestra. ¿Cómo puede ser y como lo resuelvo?
Agradezco a quien me tire un cable
Cordialmente
Juan Carlos
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:Problemas con la función Int y Log

Publicado por Fernando (66 intervenciones) el 16/04/2004 10:14:53
Los Calculos matematicos en VB dejan mucho que desear, por alguna razon el resultado del logaritmo que le llega a la funcion int es 2,99 y el resultado de int aplicandole 2,99 es 2, tienes 2 posibilidades
1.-Utilizar round
Round(Log(1000) / Log(10))
que te aproximara al entero mas cercano. Pero cuidado con el con el .5 porque dependiendo de si el numero es par o impar actua de una manera u otra.
Round(4.5)=4
Round(5.5)=6
Cosas del VB!!

2.-La otra opcion(muy poco elegante) es que le sumes algo a el argumento de int por ejemplo
Int(Log(1000) / Log(10) + 0.1)
Aunque esto lo veo muy peligroso, pero si en lugar de 0.1 pones 0.000001 las probabilidades de error van a ser menores y tambien te va a funcionar. Pruebalo.
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
Imágen de perfil de Juan Carlos

RE:Gracias, voy a probar...

Publicado por Juan Carlos (106 intervenciones) el 16/04/2004 23:24:49
Gracias por tu molestia con l respuesta Fernando.
Voy a ver como rsuelvo el tema con los datos que me das. el caso es que mi idea era estas funciones para convertir una cifra en nptación científica, y la casa funciona salvo en esos caos puntuales. In cluso reañice la diferencia entre el resultado del logaritmo y el mismo valor con la función Int aplicada y efectivamente aparecen cifras negativas e todos los órdenes (algunas del orden de -9 pero suficientes para el truncado). El tema de la opción poco elegante es que creo que siempre habrá alguna cantidad donde se produzca error (voy a probar).
Nuevamente te agradezco el dato y la respuesta
Cordialmente
Juan Carlos
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