在整形和浮点数的计算问题上 celsius=5.0*(fahr-32)/9;

#include<stdio.h>
int main()
{
    int lower,upper,fahr;
    double celsius;
    scanf("%d %d",&lower,&upper);
    if(lower<=upper&&lower<=100&&upper<=100)
    {
        fahr=lower;
        
        printf("fahr celsius\n");
        while(lower<=upper)
        {
            celsius=5.0*(fahr-32)/9;
            //这个地方加重!!!
            printf("%d%6.1f\n",fahr,celsius);
            lower=lower+2;
            fahr=lower;         
        }
    }
    else
    {
        printf("Invalid\n");
    }
    return 0; 
}

自身不清楚的地方是整形和浮点数的计算问题上,类如
在计算C=5×(F−32)/9时,即使定义了celsius是double类型,并采用%6.1f的格式输出,结果是1.0而不是1.1。这是因为facr的类型时整型,5、32、9都是整型,所以每一步的计算结果都是按整型存储的,最后计算结果celsius是浮点型保留一位小数,所以在小数点后面补了一个0,输出1.0。所以其中的一个整数一定要写成浮点数的形式,如C=5.0×(F−32)/9。
但是要是将具体的的原因自己也是部清楚,姑且将它记住好了。

引用:https://blog.csdn.net/melody_1016/article/details/82289325

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值