Как добавить запятую каждые 3 цифры без использования числового формата? - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь отформатировать значение,

Пример:

1526374856.03

до:

1,526,374,856.03

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Это правильный способ установить количество форматов в Android.Инициализируйте переменную NumberFormat, как показано ниже, и просто вызовите имя переменной Numberformat и метод format.

В этом случае мое логическое число является переменной any_number, и я указываю Locale.US из-застрана.

 NumberFormat nf = NumberFormat.getInstance(Locale.US);

    nf.format(any_number);

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 22 ноября 2018

Попробуйте это

/**
 * data format
 *
 * @param data
 * @return
 */
public static String bigDecimalData(String data) {
    if (!TextUtils.isEmpty(data)) {
        BigDecimal bd = new BigDecimal(Double.parseDouble(data));
        DecimalFormat df = new DecimalFormat(",###,####.00");
        return df.format(bd);
    }
    return "";
}
0 голосов
/ 22 ноября 2018

Чтобы сделать это без использования NumberFormat, вы можете преобразовать число в строку и выполнить следующий код:

double number = 1526374856.03;
String[] array = Double.toString(number).split(".");
String numString = array[0];

String newString = "";
for(int i = 0; i < numString.length() ; i++){
    if((numString.length() - i - 1) % 3 == 0){
        newString += Character.toString(numString.charAt(i)) + ",";
    }else{
        newString += Character.toString(numString.charAt(i));
    }
}
newString += array[1];

newString теперь является новой строкой, котораясодержит число с запятыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...