c语言 float型数据输入需要注意什么吗

作者&投稿:皇承 (若有异议请与网页底部的电邮联系)
c语言 float类型输入格式问题~

在用scanf的时候,如果是变量,比如你那个 float a,肯定要加&啊,这个去取地址符。变量都是保存在内存地址上嘛。最后就是scanf("%f",&a);
如果是指针,比如 float *a,那么再输入的时候就可以不加&,现在的a就是地址嘛。最后就是scanf("%f",a),指针输出的时候就是printf("%f",*a);

应该不可已
当字符类型的数据给float类型的变量赋值时会自动将char型数据转换成float类型
在赋值后 float类型变量的大小就是char类型的字符的ASSCL码值

  1. float型数据输入时需注意和double类型的区别。

    float的输入和输出是用%f的。
    double的输入和输出是用%lf的。
    如果把float改成double,需要把原来的%f改成%lf,才可以的。

  2. 注意float型数据的数据范围,及精度范围,数据过大时会发生溢出,应采用更大的double类型。

    float是单精度浮点型,而double是双精度浮点型,二者在机器内所占字节数不一样,精确度也不一样,double型精度更高些!float 4字节 double 8字节 float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
      float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。



#include<stdio.h>
void main()
{ double func( float x,float y);
  float a,b,c;
  scanf("%d %d",&a,&b);  //输入格式错了 ,应该是%f
  c=func(a,b);
  printf("%f
",c);
}
double func(float x,float y)
{return (x+y)}


如果用float最好不要用double返回