void main()
{
double b;
b=0.1234567891234567899e15;
printf("b=%f\n",b);
}
输出结果是:b=123456789123456.797000
这个输出结果以%f(只能保留7位有效数字 )输出的,但结果保留了16位有效数字,这怎么回事啊?
----------------解决方案--------------------------------------------------------
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型的指定位数怎样处理?
----------------解决方案--------------------------------------------------------