Java Удалить трейлинг 0s - PullRequest
       23

Java Удалить трейлинг 0s

0 голосов
/ 11 апреля 2020

Мне было интересно, как удалить конечные 0 из целых чисел в моей программе java Например: 100.0 -> 100 Однако, чтобы числа, такие как 1285.71, остались прежними.

Мне просто нужен конечный 0 из целых чисел удалены, сохраняя при этом двойное значение. Я пробовал:

    double s = x / y;
    String pattern = "0.#";

    DecimalFormat decimalFormat = new DecimalFormat(pattern);
    System.out.println(decimalFormat.format(Double.valueOf(s)) );

Однако, не работает, и я все еще получаю раздражающий 0 после целого числа (100,0). Любая помощь или понимание будет высоко ценится, приветствует ваше время.

1 Ответ

0 голосов
/ 11 апреля 2020

Поскольку вы используете DecimalFormat для представления своих чисел, есть несколько моментов, которые следует помнить о шаблоне:

  • 0 - печатает ди git если предоставлено, 0 в противном случае
  • # - печатает ди git, если предусмотрено, в противном случае ничего
  • . - указывает, куда поместить десятичный разделитель
  • , - указать, куда поместить разделитель группировки

Целочисленная часть никогда не отбрасывается. Если вы предоставите шаблон, подобный следующему: "0.#", то он выведет префикс и первый ди git в постфиксе, если он не равен нулю. Например, 12345.5 выведет то же самое, но 12345.0 выведет 12345.

Если ваши цифры после постфикса превысят количество предоставленных вами шаблонов постфикса, то эти цифры будут отброшены, например, ваш шаблон 0.#" и ваш ввод 123,45, тогда вывод будет 123,4.

Затем вы можете изменить свой шаблон на "0.##", чтобы он работал как для 100,0, так и для 1285,71

...