七,小数变量类型
2015-10-10 18:26
190 查看
小数类型的变量有float,double。它们的关系相当于int和long的关系,符号分别是%f和%lf。据说也有long double,但是我还没有使用成功过这个类型。没事double就够用了。
和整数类型相似的地方就不多说了,这里就说几个特殊的地方吧。看下面这个程序代码
请猜测输出结果,猜完以后看答案
View Code
可能会有点出人意料,但事实就是如此。
原因是这样的:还记得我前面说过的,在整数的运算里/默认为是整除符号,所以当计算机运算完1/2之后返回的结果是0。
解决方法有两个,一个是把1写作1.0或者1.这样系统就会知道你要进行的是小数运算,或者在1/2前面加上(float)这样就强制让系统以float的方式处理这个表达式(如果a是double类型的话就在前面加(double))。下面是例程:
输出结果
下面再讲一下控制输出小数位数的问题。就是在printf里面控制。以float类型举例,%.1f代表输出一位小数,%.2f两位小数,其他同理。不加按默认小数位数(6位)输出。读者可以自行尝试。
关于小数类型就讲这些。
和整数类型相似的地方就不多说了,这里就说几个特殊的地方吧。看下面这个程序代码
#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位)输出。读者可以自行尝试。
关于小数类型就讲这些。
相关文章推荐
- JNI入门 NDK开发流程
- mysql 5.6 从陌生到熟练之-数据库备份恢复
- 怎么区分类变量和实例变量?
- oracle数据库的常见数据类型
- codeforces 324# D. Dima and Lisa (素数问题)
- oracle数据库的常见数据类型
- awk输出特殊字符
- C++文件流public function—eof()
- WAP页面点击与hover延迟解决之道
- sphinx在c#.net平台下使用(一)
- poj 2564 Edit Step Ladders TRIE树+dp求图中最长路
- hadoop2.2重新格式化namenode
- 地产IT人福利:帆软地产BI解决方案全解析
- 地产IT人福利:帆软地产BI解决方案全解析
- poj3026Borg Maze
- C语言:编写一个程序,它从标准输入(终端)读取C源代码,并验证所有的花括号都正确的成对出现
- Android 禁止屏幕旋转 和 旋转屏幕时保持Activity
- Linux chmod命令详解
- jenkins使用Git为源码管理(windows master && linux slave)
- 深入探索 JUnit 4