4月从零学习C语言(第5天)——浮点数

浮点数

在文言文《邹忌讽齐王纳谏》中有一句“邹忌修八尺有余”,这里的八尺指的是古代的“尺”也就是我国的“市尺”,但是在当今社会中我们更喜欢说自己一米几也就是用公尺来衡量我们的身高,那么古代的七尺男儿到底是我们现代的多高呢。我们来编写一个程序来计算一下。

#include<stdio.h>
int main()
{
  
  printf("请分别输入身高的尺与寸,"
  "如输入"5 7"表示5尺7寸:");
    int chi;
    int cun;
    scanf("%d %d",&chi,&cun);
  printf("身高是%f米。\n",(chi+cun/10)*0.3333); 
  
  return 0;
}

在上面的程序中我们输入7 3会得到:

image.png
如果输入7 6:

image.png

这里我们会发现好像我们的程序不管用了,那么我们要思考我们的程序在什么地方错了。这是因为我们在计算中将寸除以了十,而在C语言中两个整数的运算结果只能是整数。也就是说在C语言中10与10.0是完全不同的两个数。所以我们程序中的cun/10只能得到0这个值,所以寸的计算在我们的程序中就不生效了。

那么我们应该怎样处理呢,这里我们应该用10.0的样式来计算也就是使用C语言中的浮点数来修改程序。

浮点类型

修改方案1(chi+cun/10)*0.3333)(chi+cun/10.0)*0.3333)

#include<stdio.h>
int main()
{
  
  printf("请分别输入身高的尺与寸,"
  "如输入"5 7"表示5尺7寸:");
  int chi;
  int cun;
  scanf("%d %d",&chi,&cun);
  printf("身高是%f米。\n",(chi+cun/10.0)*0.3333); 
  
  return 0;
}

当浮点数和整数放到一起运算时,C会将整数转换成浮点数,然后进行浮点数的运算。

image.png

修改方案2(将变量改为浮点型):

#include<stdio.h>
int main()
{
  
  printf("请分别输入身高的尺与寸,"
  "如输入"5 7"表示5尺7寸:");
  double chi;
  double cun;
  scanf("%lf %lf",&chi,&cun);
  printf("身高是%f米。\n",(chi+cun/10)*0.3333); 
  
  return 0;
}

注意:如果我们将变量修改为为浮点型的话要将scanf()函数中的%d改为%lf

image.png

精度:

我们这里用的浮点类型是double也就是双进度浮点数那么在浮点类型中还有其它进度的类型它们的储存大小、值范围和进度如下表:

类型存储大小值范围精度
float4 字节1.2E-38 到 3.4E+386 位有效位
double8 字节2.3E-308 到 1.7E+30815 位有效位
long double16 字节3.4E-4932 到 1.1E+493219 位有效位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值