黑马程序员技术交流社区

标题: 求教float和double的区别 [打印本页]

作者: z82454642    时间: 2014-3-10 15:15
标题: 求教float和double的区别
本帖最后由 z82454642 于 2014-3-11 23:35 编辑

float和double都是浮点型
float能表示至少6位有效数字
double能表示更多的有效数字
那么为什么下面这段代码同样输出一个数字,用float和double输出结果相同,这是为什么啊
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     float a=10.123456876582f;
  5.     double b=10.123456876582;
  6.     printf("b=%f\n",a);
  7.     printf("a=%f\n",b);
  8. }
复制代码


输出结果
  1. a=10.123457
  2. 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