¿Cómo formatear un número basado en la configuración regional, mientras se conservan todos los puntos decimales?

Los números en Java (y solo los números, generalmente) no tienen un número establecido de lugares decimales. 1.1,, 1.10y 1.100todos son exactamente el mismo número.

Puede averiguar cuántos lugares usaría el formato predeterminado, por ejemplo:

String str = num.toString();
int decimal = str.indexOf('.');
int places = decimal <= 0 ? 0 : str.length - decimal;

... y luego especifique esa cantidad de lugares cuando use el formateador.

Respuesta 1

Así que tienes

double[] floats = { 3.20, 4.500, 6.34, 1.0000 };
BigDecimal[] fixeds = {
    new BigDecimal("3.20"),
    new BigDecimal("4.500"),
    new BigDecimal("6.34"),
    new BigDecimal("1.0000")
};

y quiero formatearlos como tales, pero localizados.

La buena noticia es que los números de punto fijo con BigDecimal mantienen una precisión (usando el constructor de cadenas). La mala noticia es que el punto flotante es siempre una aproximación, por una suma de potencias (negativas) de 2. Entonces, 3.20 podría ser 3.19999987 o 3.20000043.

No tienen decimales fijos. Incluso sin error de aproximación 3.2 == 3.20 == 3.200.

Por lo tanto, convierta a BigDecimal (bastante feo) y elimine los errores de aproximación: 1000 * 3.2! = 3200.0.

BigDecimal value = new BigDecimal("5.1000");
NumberFormat df = NumberFormat.getInstance(Locale.KOREA);
df.setMinimumFractionDigits(value.getScale()); // 4
String s = df.format(value);
Respuesta: 2

Estoy trabajando en un proyecto de Camunda BPM y mi objetivo es crear un proyecto de Java (ya sea .jar o .war) que contenga varios delegados a los que llamar desde los diversos procesos. Lo que quiero en última instancia es ...

Estoy usando Eclipse ast / jdt como se explica en esta publicación: ¿Cómo puedo usar el árbol de sintaxis abstracta Eclipse de Java en un proyecto fuera de Eclipse? (es decir, no es un complemento de eclipse) El problema es que siempre obtengo ...

He completado una visualización de clasificación de burbujas en el procesamiento. El siguiente paso para mí es querer ver qué línea se está ordenando cambiando su color a rojo. No estoy seguro de cómo hacerlo ...

Estoy escribiendo una consulta JCR SQL2 que enumera todos los nodos de un tipo dado que son descendientes de una determinada ruta. Cuando escribo mi consulta de esta manera: Query query = queryManager.createQuery ("SELECT * FROM ...