Quien nunca ha necesitado dar un formato a sus números ya sean estos Integer, Double o String. Para los que necesitan poner los puntos decimales o separador de miles a los números en Java aqui les dejo un pequeño código que a mi me ayudo a realizar.
String valor = "1000"; Int v = 1000000 DecimalFormat formatea = new DecimalFormat("###,###.##"); System.outprintln(formatea.format(valor)); //Nos devuelve 1.000 System.out.println(formate.format(v)); //Nos devuelve 1.000.000
Muchas gracias, muy útil
Muy Util. Gracias
Cordial saludo después de hacer tantas pruebas y mirando que los números double me estaban presentando inconvenientes decidí hacer un método que me permitía eliminar el punto flotante y me hace el separador de miles hasta con 13 caracteres lo que da como dato
999.999.999.999 una cantidad considerable sin margenes de error hay les comparto el código para que sea de utilidad para otros colegas programadores.
public static String ponerPuntos(String dato){
if(dato==null) return «0»;
if(dato.equals(«»)) return «0»;
if(dato.equals(«0»)) return «0»;
if(dato.equals(«null»)) return «0»;
String dato1=»»;
char []aux1=dato.toCharArray();
for(int i=0;i<aux1.length;i++){
if(aux1[i]!='.' && aux1[i]!=',')
dato1=dato1+String.valueOf(aux1[i]);
else
i=aux1.length+2;
}
char []aux=dato1.toCharArray();
String str=dato1;
String salida="";
int longitud = str.length();
if(longitud <4) return dato1;
if (longitud ==4){
String sub2=str.substring(0,1);
String sub1=str.substring(1,4);
salida=sub2+"."+sub1;
}
if (longitud ==5){
String sub2=str.substring(0,2);
String sub1=str.substring(2,5);
salida=sub2+"."+sub1;
}
if (longitud ==6){
String sub2=str.substring(0,3);
String sub1=str.substring(3,6);
salida=sub2+"."+sub1;
}
if (longitud ==7 ){
String sub2=str.substring(0,1);
String sub1=str.substring(1,4);
String sub0=str.substring(4,7);
salida=sub2+"."+sub1+"."+sub0;
}
if (longitud ==8 ){
String sub2=str.substring(0,2);
String sub1=str.substring(2,5);
String sub0=str.substring(5,8);
salida=sub2+"."+sub1+"."+sub0;
}
if (longitud ==9 ){
String sub2=str.substring(0,3);
String sub1=str.substring(3,6);
String sub0=str.substring(6,9);
salida=sub2+"."+sub1+"."+sub0;
}
if (longitud ==10 ){
String sub2=str.substring(0,1);
String sub1=str.substring(1,4);
String sub0=str.substring(4,7);
String sub=str.substring(7,10);
salida=sub2+"."+sub1+"."+sub0+"."+sub;
}
if (longitud ==11 ){
String sub2=str.substring(0,2);
String sub1=str.substring(2,5);
String sub0=str.substring(5,8);
String sub=str.substring(8,11);
salida=sub2+"."+sub1+"."+sub0+"."+sub;
}
if (longitud ==12 ){
String sub2=str.substring(0,3);
String sub1=str.substring(3,6);
String sub0=str.substring(6,9);
String sub=str.substring(9,12);
salida=sub2+"."+sub1+"."+sub0+"."+sub;
}
if (longitud ==13 ){
String sub2=str.substring(0,1);
String sub1=str.substring(1,4);
String sub0=str.substring(4,7);
String sub=str.substring(7,10);
String su=str.substring(10,13);
salida=sub2+"."+sub1+"."+sub0+"."+sub+"."+su;
}
return salida;
}
que tengan un excelente dia y que este aporte sea de su utilidad, se despide cordial mente
Raymond Sanabria
Ingeniero de Sistemas/ Desarrollador de Aplicaciones
315 5221455
colombia
Gracias por tu aporte Raymond Sanabria
public String formatea(String value, char sep) {
char[] aux = value.toCharArray();
String result = «»;
int cont = 0;
for (int i = aux.length-1; i >= 0; i–) {
result = aux[i] + result;
if(++cont%3==0 && cont!=aux.length)
result = sep + result;
}
return result;
}
public String formatea(String value, String sep) {
String desecho = «»;
String result = «»;
boolean esPosible=false;
if(value.contains(«.»)){
String[] numero = value.split(«\\.»);
if(numero.length > 2){
esPosible=false;
}else{
desecho = numero[1];
value =numero[0];
esPosible=true;
}
}
if(value.contains(«,»)){
String[] numero = value.split(«,»);
if(numero.length > 2){
esPosible=false;
}else{
desecho = numero[1];
value =numero[0];
esPosible=true;
}
}
if(esPosible){
char[] aux = value.toCharArray();
int cont = 0;
for (int i = aux.length-1; i >= 0; i–) {
result = aux[i] + result;
if(++cont%3==0 && cont!=aux.length)
result = sep + result;
}
}
if(desecho.length() > 0){
result = result + «,»+ desecho;
}
return result;
}
buenas tengo un proyecto que uso un spiner para agarrar «x» cantidad y multiplicarla por «y» cantidad pero tengo un inconveniente que en el spiner «x» no me deja meter decimales osea introdusco «0.230» y me pone «230» como podria corregir esto muchas gracias
estimado los spiner solo agarran datos de tipo int (enteros) para agarrar datos con decimal ( double o float) podes ocupar el FormattedField
Buenas a todos, pregunta: ya tengo un separador de miles dentro de un evento de dos textfields, al querer obtener la suma de estos dos números de cada caja de texto y volcarlo a otro textfield con el mismo separador de miles, sólo me arroja el resultado hasta el punto. Por ejemplo si tengo txt1 = 12.000 + txt2 = 10.000 . La caja de texto con el resultado me arroja 22 nada más.
Desde ya les agradezco