摄氏度转华氏度(Java)

img


有两个问题:
1.tem2怎么不随tem1改变而改变呢?
2.\t在计算机中是一个tab键的字节,为什么在0°C和比其他度数的占用格数多呢,从而造成他们都是对齐的

1、tem2不随tem1改变的原因是,在do-while循环中,tem1的值改变后,tem2没有使用运算公式用新的tem1值来求更新其值,所以tem2的值就一直是第一次求得的值,可以在do-while循环中在tem1改变值后,tem2也利用公式来更新其值;

2、因为有负号以及数字的位数不相同而造成了占用的格数各不相同,可以使用格式字符串来对它们统一打印格式来进行对齐。

修改如下:

参考链接:


https://blog.csdn.net/qq_43160348/article/details/118493697




public class P71training7 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int tem1=-30;
        double tem2=tem1*9/5.0+32;
        do {
    
            System.out.printf("摄氏温度:%3d°C",tem1);// 摄氏温度数字占用的位数最多3位,所以用%3d来打印
            System.out.printf("\t华氏温度:%5.1f°F\n",tem2); //华氏温度数字占用的位数最多5位,然后为了精度保留一位小数,所以用%5.1f来打印
            tem1+=10;
            tem2=tem1*9/5.0+32;// tem2在tem1更新值后也利用公式来求得新值
        }while(tem1<=50);
    }

}

img