我对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();
}
}
}
答案 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();
}
}