Формат для печати в одну десятичную точку для температуры - PullRequest
0 голосов
/ 30 октября 2018

Я очень новичок в Java, и мне нужно написать программу, которая принимает от -40 до 120 градусов по Фаренгейту и конвертирует ее в градусы Цельсия, а затем отображает их в двух столбцах с шагом 5 с точностью до одного десятичного знака. У меня большая часть кода закончена, и у меня есть правильный вывод для Фаренгейта, но я не могу понять, как заставить Цельсия печатать с точностью до одного десятичного знака. Все будет полезно!

package 3;

public class prog2 {

     public static void main(String[] args) {
         System.out.println("Fahrenheit to Celsius converter from -40F below to 120F");
          for(double temp = -40.0; temp <= 120; temp += 5) 
          {
             System.out.printf("%10.1f", temp);
             double sum = (temp -32) * (5.0/9.0);  
             System.out.printf("%5d",(int) sum );
             System.out.println();          
      }
   }

}

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

вы можете использовать класс DecimalFormat, отправив в конструктор форматирующую строку. В вашем примере «#» означает одну цифру и «.» означает десятичную точку. проверьте эту ссылку для более https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

Вы можете сделать что-то подобное:

public static void main(String[] args) {
    System.out.println("Fahrenheit to Celsius converter from -40F below to 120F");
    DecimalFormat df = new DecimalFormat("###.#");
    for (double temp = -40.0; temp <= 120; temp += 5) {
        System.out.printf("%sC°", df.format(temp));
        double sum = (temp - 32) * (5.0 / 9.0);
        System.out.printf("= %sF°", df.format(sum));
        System.out.println();
    }
}
0 голосов
/ 30 октября 2018

Изменить вывод суммы на это:

System.out.printf(" %10.1f", sum );

Форматирование такое же, как для первого столбца, и не приводите вычисленное значение к целому.

...