Java: формат двойной с десятичными числами - PullRequest
1 голос
/ 05 мая 2011

В Objective CI я использовал этот код для форматирования значения так, чтобы значение с нулевыми десятичными знаками было записано без десятичных знаков, а значение с десятичными знаками было записано с одним десятичным знаком:

CGFloat value = 1.5;
return [NSString stringWithFormat:@"%.*f",(value != floor(value)),value];

//If value == 1.5 the output will be 1.5
//If value == 1.0 the output will be 1

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

return String.format("%.*f",(value != Math.floor(value)),value);

Ответы [ 3 ]

1 голос
/ 05 мая 2011

Посмотрите на как напечатать Double без запятых . Это, безусловно, даст вам некоторую идею.

Точно, это будет делать

DecimalFormat.getInstance().format(1.5)
DecimalFormat.getInstance().format(1.0)
0 голосов
/ 05 мая 2011

Не уверен, как это сделать с помощью метода String.format (".."), но вы можете добиться того же, используя java.text.DecimalFormat;Посмотрите этот пример кода:

import java.text.NumberFormat;
import java.text.DecimalFormat;
class Test {
public static void main(String... args) {
        NumberFormat formatter = new DecimalFormat();
        System.out.println(formatter.format(1.5));
        System.out.println(formatter.format(1.0));
   }
}

Выход составляет 1,5 и 1 соответственно.

0 голосов
/ 05 мая 2011

Ты имеешь в виду что-то вроде?

return value == (long) value ? ""+(long) value : ""+value;
...