七,小数变量类型

  小数类型的变量有float,double。它们的关系相当于int和long的关系,符号分别是%f和%lf。据说也有long double,但是我还没有使用成功过这个类型。没事double就够用了。

  和整数类型相似的地方就不多说了,这里就说几个特殊的地方吧。看下面这个程序代码

#include<stdio.h>
int main(void)
{
    float a;
    a=1/2;
    printf("%f",a);
    return 0;
 } 

请猜测输出结果,猜完以后看答案

0.000000
View Code

可能会有点出人意料,但事实就是如此。

原因是这样的:还记得我前面说过的,在整数的运算里/默认为是整除符号,所以当计算机运算完1/2之后返回的结果是0。

解决方法有两个,一个是把1写作1.0或者1.这样系统就会知道你要进行的是小数运算,或者在1/2前面加上(float)这样就强制让系统以float的方式处理这个表达式(如果a是double类型的话就在前面加(double))。下面是例程:

#include<stdio.h>
int main(void)
{
    float a;
    a=(float)1/2;
    printf("%f",a);
    return 0;
 } 
#include<stdio.h>
int main(void)
{
    float a;
    a=1./2;
    printf("%f",a);
    return 0;
 } 

输出结果

0.500000

下面再讲一下控制输出小数位数的问题。就是在printf里面控制。以float类型举例,%.1f代表输出一位小数,%.2f两位小数,其他同理。不加按默认小数位数(6位)输出。读者可以自行尝试。

关于小数类型就讲这些。

原文地址:https://www.cnblogs.com/itlqs/p/4867975.html