黑马程序员技术交流社区
标题:
求教float和double的区别
[打印本页]
作者:
z82454642
时间:
2014-3-10 15:15
标题:
求教float和double的区别
本帖最后由 z82454642 于 2014-3-11 23:35 编辑
float和double都是浮点型
float能表示至少6位有效数字
double能表示更多的有效数字
那么为什么下面这段代码同样输出一个数字,用float和double输出结果相同,这是为什么啊
#include <stdio.h>
int main()
{
float a=10.123456876582f;
double b=10.123456876582;
printf("b=%f\n",a);
printf("a=%f\n",b);
}
复制代码
输出结果
a=10.123457
b=10.123457
复制代码
作者:
lixiangzhou
时间:
2014-3-10 15:35
这是和你的输出格式有关的:
%f:默认输出6位有效数字,不管是float还是double。
改成%.3f表示输出3位小数
作者:
z82454642
时间:
2014-3-10 15:50
lixiangzhou 发表于 2014-3-10 15:35
这是和你的输出格式有关的:
%f:默认输出6位有效数字,不管是float还是double。
改成%.3f表示输出3位小数 ...
原来double输出也要给它设小数位数啊,真蛋疼我以为直接输出最多的位数呢
作者:
apple_victor
时间:
2014-3-10 16:43
double 和 float 都可以用%f 输出,默认为6位小数。如果有其它需求,那就需要指定了。
例如:
#include <stdio.h>
int main()
{
float a=10.123456876582f;
double b=10.123456876582;
printf("a=%.8f\n",a);
printf("b=%.10lf\n",b);
}
输出结果是:
b=10.12345687
a=10.1234568765
作者:
陈志辉
时间:
2014-3-10 17:20
%f:默认输出6位有效数字
作者:
cnchenys
时间:
2014-3-10 17:38
%f:默认输出6位有效数字,不管是float还是double。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2