Trabajar con decimales

jota
05 de Enero del 2006
Hola ke tal... estoy realizando un programa ke maneja calificaciones de alumnos... pero a la hora de promediar dichas notas... si algun resultado es por ejemplo 10,5... ese 10,5 kisiera redondearlo hacia arriba para obtener un 11.... visual basic permite llevar al numero superior inmediato si el decimal es de 6 a 9... pero si es 5 como en el caso planteado lo lleva al numero inferior inmediato: 10. ¿Cómo puedo llevar un numero con decimal mayor ó igual a 5 al numero superior...?

PD: ya he utilizado las funciones VAL, FIX y INT y no me funcionan, el 10, 5 es llevado a 10 y no a 11 como lo deseo... agredezco su ayuda de antemano... =)

jota
05 de Enero del 2006
UHMM otra cosita.. la funcion round no me lleva tampoco el numero con decimal 5 al superior sino al inferior =S... gracias otra vz... ojala tengan la respuesta... se les agradece de antemano...! =)

. : darksoft : .
05 de Enero del 2006
O.k.

Intentare algo muy primitivo y espero que te funcione:

Public Function Redondear( lngValor as long) as Long
dim sTmp as string
dim iTmp as integer

if len(lngvalor)<2 then exit function

sTmp = mid(lngValor, len(lngValor)-1)
iTmp = int(sTmp)

if iTmp >= 5 then
Redondear = lngValor + (( 10 - iTmp) /10)
else
Redondear = lngValor - (( 10 - iTmp) /10)
end if

End function


A grandes razgos, una teoria muy primitiva pero se que talvez funcione.

Si observas, le sacamos el decimal a lngValor, lo convertimos en string y despues en integer para saber si es mayor o igual a 5, si lo es, le sumamos a lngValor lo qu e le falta para completar el numero superior.

No se si funcione pues no lo he probado, en todo caso estoy para servirte.

Saludos!

. : DarkSoft : .