¿Para qué función puedo usar en Android para mostrar el número en diferentes formatos?
Por ejemplo: si ingreso 1000, entonces debería mostrarse así 1,000. Si ingreso 10000, entonces debería mostrarse como este 10,000. Si ingreso 1000000, entonces debería mostrarse así 1,000,000.
Por favor guíame.
String.format("%,d", number)
que sea corta y correctaprueba este espero que te ayude.
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(1000));
fuente
get...Instance()
métodos sin parámetros utilizan la configuración regional predeterminada de forma predeterminada.private String getFormatedAmount(int amount){ return NumberFormat.getNumberInstance(Locale.US).format(amount); }
fuente
int[] numbersToFormat = new int[] { 1, 10, 100, 10000, 100000, 1000000, 10000000, 100000000, 1000000000 }; for (int number : numbersToFormat) { System.out.println( NumberFormat.getNumberInstance(Locale.getDefault()).format(number)); }
SALIDA
1 10 100 10,000 100,000 1,000,000 10,000,000 100,000,000 1,000,000,000
fuente
Agregue esta función en la clase común
public static String getFormatedNumber(String number){ if(!number.isEmpty()) { double val = Double.parseDouble(number); return NumberFormat.getNumberInstance(Locale.US).format(val); }else{ return "0"; } }
Y usa esa función en todas partes así:
String newNumber = Utils.getFormatedNumber("10000000");
fuente
Agregue un oyente de cambio de texto como se muestra a continuación (también asegúrese de que el tipo de entrada seleccionado para Editar texto sea Número):
etTest.addTextChangedListener(new TextWatcher() { boolean isManualChange = false; @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (isManualChange) { isManualChange = false; return; } try { String value = s.toString().replace(",", ""); String reverseValue = new StringBuilder(value).reverse() .toString(); StringBuilder finalValue = new StringBuilder(); for (int i = 1; i <= reverseValue.length(); i++) { char val = reverseValue.charAt(i - 1); finalValue.append(val); if (i % 3 == 0 && i != reverseValue.length() && i > 0) { finalValue.append(","); } } isManualChange = true; etTest.setText(finalValue.reverse()); etTest.setSelection(finalValue.length()); } catch (Exception e) { // Do nothing since not a number } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } });
fuente
Puede utilizar Numberformat
public static double getNumberByString(String s) throws ParseException { return NumberFormat.getInstance(Locale.getDefault()).parse(s).doubleValue(); }
fuente
public static String formatNumber(int number){ return NumberFormat.getNumberInstance(Locale.getDefault()).format(number); } public static String formatNumber(String number){ return NumberFormat.getNumberInstance(Locale.getDefault()).format(Integer.parseInt(number)); }
fuente