Los dígitos en la fuente Arial suministrada con Windows son monoespaciados, ya que cada uno ocupa el mismo espacio horizontal, pero parece que han olvidado proporcionar una versión "monoespaciada" del carácter de espacio. Esto significa que no puede formatear una columna de dígitos justificados a la derecha en (por ejemplo) 12 espacios y que el borde derecho esté alineado. Por ejemplo:
1
12
123
1234
12345
1234567
12345678
123456789
1234567890
funciona porque la fuente utilizada para los ejemplos de código tiene espacios del mismo ancho que los dígitos. Sin embargo, esto no funciona si se muestra el mismo texto en Arial (¡no puedo demostrarlo porque no puedo descubrir cómo derrotar el cambio de formato de la SU en este momento!).
Da la casualidad de que con Tahoma 8 puedes hacer trampa porque un espacio es exactamente la mitad de píxeles que un dígito, pero eso es complicado y muy específico.
fuente
Sí, si estás dispuesto a pagarlo, el monotipo tiene un variante de arial para la venta que es monoespaciado .
Por otro lado, si quieres una buena fuente sans serif que sea gratuita y que funcione bien en muchas situaciones, te sugiero que mires droid sans mono
fuente
Usé el espacio de figuras (según lo sugerido por el usuario 1458424) para alinear números y espacio delgado para separar miles.
En, digamos, JavaScript o C, puede escribir los códigos de caracteres Unicode correspondientes en cualquier parte de una cadena:
\u2007
: Figura del espacio.\u202F
: Espacio fino.Usar el espacio delgado como un separador de miles tiene algunas ventajas significativas:
,
o.
.>= 1000
, ya que el espacio es invisible al ojo.A continuación, describiré lo que hice para obtener el siguiente formato (separador decimal europeo
,
en este ejemplo):€ 121018,33
price.replace(/[^\d]+/g, '')
.missingDigits = maxDigits - price.length
.'€'
.'\u2007'
.'\u202F'
, anexado por los últimos seis personajes.La entrada puede ser cualquier representación de cadena de un número, con o sin puntuación y caracteres ilegales. La salida será como se ve arriba. Tienes que elegir el número máximo de dígitos permitido.
fuente