格式化打印到温度的小数点后一位

时间:2018-10-29 21:42:42

标签: java formatting decimal

我对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 :(得分:1)

将总和的打印更改为此:

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

格式与第一列相同,并且请勿将计算所得的值强制转换为int。

答案 1 :(得分:0)

您可以通过在构造函数中发送格式化字符串来使用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();
    }
}