您的位置:首页 > 其它

七,小数变量类型

2015-10-10 18:26 190 查看
小数类型的变量有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位)输出。读者可以自行尝试。

关于小数类型就讲这些。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: