Dato numérico, guardarlo como numérico. Porque es más eficiente su almacenamiento, y su indexado. En MySQL, por ejemplo, puedes guardar números de 0 a 255 en un solo byte, o algo más de 65000 en 2 bytes o algo más de 4 mil millones (10 dígitos) en 4 bytes.
Entonces dato numérico es dato numérico, y es consistente.
Si guardas un número como texto, como lo guardas? Supongamos hasta 3 dígitos. Quiero guardar el 7. Guardo '7', ' 7 ', '07 ', ' 7', '007', etc. En todos los casos es 7, pero si buscas por igualdad, mayor o menor, las respuestas pueden ser cualquier cosa.
En Fox nos acostumbramos a usar EMPTY(), porque no existía el dato NULL, pero no es lo mismo una string (cadena) vacía que Null, no es lo mismo 0 que null, el promedio de 10, 5 y 0 es 5. El promedio de 10, 5 y null es 7,5.
Las máscaras de fox nos permiten determinar que se tipea dentro de un campo. Pero lo correcto antes de activar el formulario es poner cada campo con un valor "correcto" por omisión.
Salvo con el uso de buffers, los controles asociados a datos deberían estar en relación a variables de memoria o propiedades del formulario. Correctamente inicializadas.
Saludos: Miguel.