Adjunto una lista de recomendaciones para la presentación de números y fechas en aplicaciones informáticas (también aplicable a páginas Web). Estas recomendaciones están extraídas del Manual de Usabilidad elaborado para guiar a los desarrolladores de mi empresa.
4.4.4. Números y Fechas[REGLA] ¡Ningún número huérfano! (sin unidades). Incluir siempre las unidades a las que se refiere el número que se presenta o que debe introducir el usuario: horas, días, km, cm, kb, personas, copias, incidencias…
En el idioma del usuario no existen números, existen conceptos y unidades del mundo real: solicitudes, personas, expedientes, minutos, kilogramos, etc.
[REGLA] Normalmente la unidad se colocará a la derecha del número. Se pueden exceptuar los números que aparezcan en una tabla, donde la unidad puede aparecer en el encabezado de la columna correspondiente.
[REGLA] Utilizar la precisión (número de cifras significativas) adecuada a la magnitud que se está mostrando. En general, ningún número con más de 4-5 cifras significativas, los porcentajes con 1-2 decimales.
Contraejemplos: 15,23231232 semanas, 3423246604353 bytes, 0.000000002321 días.
Ejemplos: 15 semanas, 3.188 GB, 200,5 microsegundos
[REGLA] Cuando se presenten varios números en columna, utilizar alineación derecha según la coma decimal. (o simplemente alineación derecha fijando el mismo número de decimales para todas las filas)
[REGLA] Poner siempre el punto de los miles (o espacios cuando poner puntos cause problemas). 1 000 000,00
[REGLA] Permitir espacios en los campos numéricos. Permitir que el usuario introduzca números con punto de separación de miles y coma decimal. (es tan sencillo como hacer str = str.Replace(“.”, “”); )
[RECOMENDACIÓN] Para cada tipo de número (capacidad, tiempo, etc.) preparar una función para formatear la cantidad de forma legible y usarla de forma consistente en toda la aplicación:
Ejemplo:
static public string SizeStr(int bytes)
{
string sizeStr = "";
if (bytes < 1024)
sizeStr = string.Format("{0} bytes", bytes);
else if (bytes < 1024 * 1024)
sizeStr = string.Format("{0:0.0} KB", bytes / 1024.0);
else //if (bytes < 1024 * 1024 * 1024)
sizeStr = string.Format("{0:#,##0.00} MB", bytes / 1024.0 / 1024.0);
return sizeStr;
}
[REGLA] Formatear todas las fechas de forma correcta y consistente.
[RECOMENDACIÓN] Anotar (añadir a continuación de) las fechas con cadenas más legibles (hoy, ayer, hace 3 semanas)