当前位置: 代码迷 >> C语言 >> [求助]float double的疑问
  详细解决方案

[求助]float double的疑问

热度:964   发布时间:2006-01-05 19:33:00.0
[求助]float double的疑问

void main()
{
 double b;
 b=0.1234567891234567899e15;
 printf("b=%f\n",b);
}
输出结果是:b=123456789123456.797000
这个输出结果以%f(只能保留7位有效数字 )输出的,但结果保留了16位有效数字,这怎么回事啊?

搜索更多相关的解决方案: float  double  疑问  

----------------解决方案--------------------------------------------------------
以下是引用zzw1978524在2006-1-5 19:33:00的发言:

void main()
{
 double b;
 b=0.1234567891234567899e15;
 printf("b=%f\n",b);
}
输出结果是:b=123456789123456.797000
这个输出结果以%f(只能保留7位有效数字 )输出的,但结果保留了16位有效数字,这怎么回事啊?


如果你想要保留7位也是可以的,但是这里你并没有作输出 控制,也许你看书上说是7 位,但它的意思是系统默认输出的小数位数
----------------解决方案--------------------------------------------------------
这是double双精度浮点型,有效值应该是16吧,
----------------解决方案--------------------------------------------------------
zenme 怎么提示非法字符啊什么意思啊
----------------解决方案--------------------------------------------------------
double型要用%lf输出
----------------解决方案--------------------------------------------------------

换成float不就会输出八位啦吗!


----------------解决方案--------------------------------------------------------
原因很简单f%默认的就是双精度输出
----------------解决方案--------------------------------------------------------
保留有效是有效小数吧~~~~不是全部位数是7位吧
float有6位小数
double是16位小数
不知道是不是这样
----------------解决方案--------------------------------------------------------
我想问一下,如果我想得到一个float型的指定位数怎样处理?
----------------解决方案--------------------------------------------------------
  相关解决方案