Усечение или десятичный формат в Java

У меня есть это:

if (inKm) 
{
    text = String.valueOf(MetricConverter.milesToKilometers(Double.valueOf(text)));

}

Это дает результат в JTextField, который, на мой взгляд, слишком длинный. Как усечь или использовать десятичный формат для полученного значения? Когда я использовал десятичный формат в этом выражении, программа просто сбивала с толку.


person Randy B.    schedule 12.04.2013    source источник
comment
Вы можете посмотреть ответ здесь: stackoverflow.com/a/3596122/859485   -  person Andre M    schedule 12.04.2013


Ответы (1)


Мне нравится использовать это, так как это так похоже на printf()

double doubleValue = 123.4567895;
String.format("%.2f", doubleValue); // returns "123.46"

Изменить: это не усечение, а округление до половины.

Дополнительная информация о том, как использовать String.format() и java.util.Formatter:
http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html

person Goodwine    schedule 12.04.2013
comment
Ах хорошо. Я хочу с точностью до одного десятичного знака. - person Randy B.; 12.04.2013
comment
Это не то, что я имею в виду. Это также выводит программу из строя. - person Randy B.; 12.04.2013
comment
@RandyB. Вы делаете text = String.format("%.1f", MetricConverter.milesToKilometers(Double.valueOf(text)));? или какую ошибку вы получаете? NumberFormatException? - person Goodwine; 12.04.2013
comment
когда я это делаю, он обрывается, но каким-то образом сбивает расчет. Я пока не могу понять почему - person Randy B.; 12.04.2013