Java: число Формата в миллионах

MDN - функции стрелок

Функции стрелок могут иметь либо «краткое тело», либо обычное «тело блока».

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

blockquote>

Поскольку вы заключили свой метод в фигурные скобки, он считается телом блока .

Либо добавьте return перед ним, либо еще проще, сделайте его лаконичным, убрав фигурные скобки:

const isEmpty = value =>
  value === undefined ||
  typeof value === "undefined" ||
  value === null ||
  (typeof value === "object" && Object.keys(value).length === 0) ||
  (typeof value === "string" && value.trim().length === 0);

const data = {};
data.handle = !isEmpty(data.handle) ? data.handle : "";
console.log("data.handle is still undefined: " + typeof data.handle);

if (typeof data.handle === "undefined") {
  data.handle = "";
  console.log("empty string yes!!!");
}
[113 ]

11
задан Outlaw Programmer 9 February 2009 в 19:39
поделиться

5 ответов

String.format("%.2fM", theNumber/ 1000000.0);

Для получения дополнительной информации посмотрите String.format javadocs.

18
ответ дан 3 December 2019 в 03:19
поделиться

Обратите внимание на это, если у Вас есть a BigDecimal, можно использовать movePointLeft метод:

new DecimalFormat("#.00").format(value.movePointLeft(6));
4
ответ дан 3 December 2019 в 03:19
поделиться

Почему не просто?

DecimalFormat df = new DecimalFormat("0.00M");
System.out.println(df.format(n / 1000000));
3
ответ дан 3 December 2019 в 03:19
поделиться

Вот подкласс NumberFormat, который я сделал на скорую руку. Похоже, что это делает задание, но я не совсем уверен, что это - лучший способ:

private static final NumberFormat MILLIONS = new NumberFormat()
{
    private NumberFormat LOCAL_REAL = new DecimalFormat("#,##0.00M");

    public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos)
    {
        double millions = number / 1000000D;
        if(millions > 0.1) LOCAL_REAL.format(millions, toAppendTo, pos);

        return toAppendTo;
    }

    public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
    {
        return format((double) number, toAppendTo, pos);
    }

    public Number parse(String source, ParsePosition parsePosition)
    {
        throw new UnsupportedOperationException("Not implemented...");
    }
};
3
ответ дан 3 December 2019 в 03:19
поделиться

Смотрите на ChoiseFormat.

Более упрощенный путь состоял бы в том, чтобы использовать обертку что автоматический разделенный на 1 м для Вас.

0
ответ дан 3 December 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: