对于数据类型int和float

温度由华氏转化为摄氏:
#include<stdio.h>
int main()
{
float f;
float c;
scanf("%f",&f);
c=5/9*(f-32);
printf("%f",c);
return 0;
}

上面的结果输出是0;

  #include<stdio.h>     
  int main()    
  {

    float f;    
    float c;    
    scanf("%f",&f); 
        c=5.0/9*(f-32);
    printf("%f",c);
    return 0;
  }

上面输入86输出30;
所产生的区别在于5/9与5.0/9
5/9=0.5555555555…
第一个中5/9因为5与9是Int型所以产生的结果为0.000000,
而在第二个中5.0/9则5.0为浮点型表示所以结果也是采用浮点型表示,5.0/9=0.555556.
这就导致了计算结果的不同,造成错误。
当两个不同数据类型的表达式用运算符组合后,数据类型优先级规则指定将优先级较低的数据类型转换为优先级较高的数据类型。 如果此转换不是所支持的隐式转换,则返回错误。 当两个操作数表达式具有相同的数据类型时,运算的结果便为该数据类型。

参考数据类型优先级

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值