Подтвердить что ты не робот

Как удалить ".0" в целом при использовании double в java?

Возможный дубликат:
Как мне отформатировать номер в java?

У меня проблемы с использованием Double. Когда результат будет целым числом, он будет отображаться с ".0", например 1.0, 2.0.

Может ли кто-нибудь помочь мне удалить это .0 в целом?

4b9b3361

Ответ 1

Format отображаемую строку.

Ответ 2

import java.text.DecimalFormat;


public class Asdf {

    public static void main(String[] args) {
        DecimalFormat format = new DecimalFormat();
        format.setDecimalSeparatorAlwaysShown(false);

        Double asdf = 2.0;
        Double asdf2 = 2.11;
        Double asdf3 = 2000.11;
        System.out.println( format.format(asdf) );
        System.out.println( format.format(asdf2) );
        System.out.println( format.format(asdf3) );
    }

}

печатает:

2
2.11
2,000.11

Используя

DecimalFormat format=new DecimalFormat("#.#"); //not okay!!!

неверен, поскольку он бесполезен с разделителями 10 ^ 3, 10 ^ 6 и т.д.

2000.11 будет отображаться как "2000.11" вместо "2000.11"

Это, конечно, если вы хотите отображать цифры, отформатированные правильно, а не только с использованием неправильной функции toString().

Также обратите внимание, что форматирование может отличаться в зависимости от пользователей. Локаль и DecimalFormat должны быть инициализированы соответствующим образом с использованием метода factory с пользователем Locale в качестве аргумента:

NumberFormat f = NumberFormat.getInstance(loc);
 if (f instanceof DecimalFormat) {
     ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
 }

http://download.oracle.com/javase/1.5.0/docs/api/java/text/DecimalFormat.html

UPDATE Эта строка форматирования отлично работает и не вызывает дополнительный метод:

    DecimalFormat format=new DecimalFormat("#,###.#");
   //format.setDecimalSeparatorAlwaysShown(false);

Ответ 3

Вам нужно использовать DecimalFormat для форматирования вашего двойника.

public static void main(String[] args) {
      DecimalFormat decimalFormat=new DecimalFormat("#.#");
      System.out.println(decimalFormat.format(2.0)); //prints 2
}