Возможный дубликат:
Как мне отформатировать номер в java?
У меня проблемы с использованием Double. Когда результат будет целым числом, он будет отображаться с ".0", например 1.0, 2.0.
Может ли кто-нибудь помочь мне удалить это .0 в целом?
Возможный дубликат:
Как мне отформатировать номер в java?
У меня проблемы с использованием Double. Когда результат будет целым числом, он будет отображаться с ".0", например 1.0, 2.0.
Может ли кто-нибудь помочь мне удалить это .0 в целом?
Format отображаемую строку.
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);
Вам нужно использовать DecimalFormat для форматирования вашего двойника.
public static void main(String[] args) {
DecimalFormat decimalFormat=new DecimalFormat("#.#");
System.out.println(decimalFormat.format(2.0)); //prints 2
}