studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones java numbers format pad

programacion - Relleno de partes enteras de Java



manual de programacion android pdf (2)

Aquí hay una línea usando DecimalFormat:

new DecimalFormat("00." + (x + "").replaceAll(".", "#")).format(x)

Formatea su decimal como 00. ############# ..., donde la longitud de "############# ..." proviene de la longitud de su decimal ("#" en exceso no hace nada).

Puede usar String.valueOf(x) en lugar de (x + "") si lo desea.

Lo siento, inicialmente quería hacerlo en php PHP entero , pero me di cuenta de que lo haré en Java en otra parte del código

Entonces necesito formatear números con la parte entera de al menos 2 caracteres

2.11 -> 02.11
22.11 -> 22.11
222.11 -> 222.11
2.1111121 -> 02.1111121

double x=2.11; System.out.println(String.format("%08.5f", x));

podría hacerlo, pero molesta los ceros a la derecha, me gustaría tener una gran parte flotante arbitraria

String.format("%02d%s", (int) x, String.valueOf(x-(int) x).substring(1))

es totalmente feo e inexacto (da 02.1099 ...)

new DecimalFormat("00.#############").format(x)

truncará la parte flotante

THX para mejores soluciones


lo mejor que puedo venir es

public static String pad(String s){ String[] p = s.split("//."); if (2 == p.length){ return String.format("%02d.%s", Integer.parseInt(p[0]), p[1]); } return String.format("%02d", Integer.parseInt(p[0])); }

pad (String.valueOf (1.11111118)) -> 01.11111118