C语言中的小数float,double

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的小数float,double相关的知识,希望对你有一定的参考价值。

参考技术A

  程序设计就是让计算机按照一定的指令来进行工作,可以说数据的处理是程序设计的主要任务。那么,C语言中的小数(float,double)怎么输出?欢迎大家阅读!更多相关信息请关注相关栏目!

  小数也称实数或浮点数。例如,0.0、75.0、4.023、0.27、-937.198 都是合法的小数。这是常见的小数的表现形式,称为十进制形式。

  除了十进制形式,也可以采用指数形式,例如 7.25×102、0.0368×105、100.22×10-2等。任何小数都可以用指数形式来表示。

  C语言中的小数也有这两种表示形式。在书写时,十进制形式和数学中的一样,指数形式有所差异。

  在C语言中小数的指数形式为:

  aEn 或 aen

  a 为尾数部分,是一个十进制数,n 为指数部分,是一个十进制整数,E或e是固定的字符,其值为 a×10n。例如:

  2.1E5 = 2.1×105,其中2.1是尾数,5是指数。

  3.7E-2 = 3.7×10-2,其中3.7是尾数,-2 是指数。

  0.5E7 =0.5×107,其中0.5是尾数,7是指数。

  C语言中小数的.数据类型为 float 或 double:float 称为单精度浮点数,double 称为双精度浮点数。不像整数,小数的长度始终是固定的,float 占用4个字节,double 占用8个字节。

   小数的输出

  输出 float 使用 %f 控制符,输出 double 使用 %lf 控制符,如下所示:

  #include#includeint main()float a = 0.302f;float b = 1.23002398;double c = 123;double d = 78.429;float e = 128.101;printf("a=%f b=%f c=%f d=%lf e=%lf ", a, b, c, d, e);return 0;

  运行结果:

  a=0.302000

  b=1.230024

  c=123.000000

  d=78.429000

  e=128.100998

  对代码的说明:

  1) %f 默认保留六位小数,不足六位以 0 补齐,超过六位按四舍五入截断。

  2) 将整数赋值给 float 变量时会转换为小数。

C语言 获取Float小数位数

int get_float_f(float dat){
    long d;
    int length = 6;    // 小数大致位数
		
    for(int i=6;i>0;i--){
        d = (long)(dat*((float)pow((double)10,(double)i)));
        d = d%10;
        if(d==0){
            length=length-1;
        }else{
            break;
        }
    }
    return length;
}

以上是关于C语言中的小数float,double的主要内容,如果未能解决你的问题,请参考以下文章

C语言中float型数据怎么 取整数部分算法 或取小数部分

C语言如何实现在运算过程中的四舍五入保留两位小数

C语言float类型

各位大神,请问怎么才能在c语言中用float输入小数并计算后输出小数?

c语言 求小数的位数

C语言 如何确定输入的float型的小数点位数