Cuando se usa notación científica, escribir 1000 g es lo mismo que 1 kg.
Al usar Intl.NumberFormat con la notación compacta y el estilo de moneda, cambia automáticamente de £ 999 a £ 1k.
Al usar también la propiedad minIntegerDigits=3, esperaba que esperara hasta tener tres dígitos enteros para cambiar, por lo que sería de £ 99,999 a £ 100k. En su lugar, agrega ceros a la izquierda, cambiando de £ 999 a £ 001k.
¿Es posible lograr los siguientes formatos:
£ 99,999.99 luego £ 100.00k
£ 9,999.99k luego £ 10.00M
£ 9,999.99M luego £ 10.00B
? O al menos algo parecido.
Pensé en dividir el número para obtener el tamaño entero que necesito, luego combinar la salida de formatToParts tomando el "literal" de uno y las partes "entero" y "fracción" de otro. Pero se siente demasiado desordenado. (pseudocódigo, algo así como)
numericalParts = formatToParts(value/1000) semanticalParts = formatToParts(1000) return numericalParts.integer + numericalParts.fraction + semanticalParts.literal + semanticalParts.currency