Validar números enteros y fraccionarios.

Saludos a toda la comunidad.

Quisiera saber cómo hacer una función en visual basic que me valide los números enteros y fraccionarios por separado. Yo sé que existe la funcion isNumeric(), pero ésta solo indica si una variable de entrada es o no un número. Lo que yo quiero hacer es saber si la variable de entrada, además de que sea número, es un número entero o un número fraccionario.

Hasta ahora he probado hacerlo con la función Mod y la función Round. Pero, no me funciona con todos los fraccionarios. Mi lógica es la siguiente: guardo la variable de entrada redondeada en otra variable y luego divido la variable de entrada entre la variable que guardó el redondeo. Si el residuo es 0, entonces es un número entero, pero si es mayor de 0, entonces es fraccionario.

Pero sucede que con algunos fraccionarios muy cercanos a números enteros, me los clasifica como enteros, y no como fraccionarios.

Tiene alguien alguna otra idea de hacer de una mejor manera?

Ejemplo de lo que he hecho, luego de comprobar de que si la variable de entrada es un número:

A: variable de entrada
R: Variable que guarda el redondeo
f: Variable booleana que indica si es entero o fraccionario


R = Math.Round(A)
if (A Mod R) > 0
f = True
else
f = False


Si f es verdadera, A será un número fraccionario, pero si es falsa A será un número entero.

Saludos.
 
No podes hacer la diferencia simplemente entre los dos numeros, el original y el redondeado? Si la diferencia es distinta de cero, el numero no es entero.
 
Muy buena idea amigo chclau, eso no se me había ocurrido antes. También, eso me ayudará a que no me de un error de división entre cero cuando mi variable de entrada sea 0.

Muchas gracias por gran aporte.

Saludos....
 
Atrás
Arriba