猿问

关于单双精度浮点型的疑问


#include<stdio.h>

int main()

{

float a;

a=3.141592612;

printf("a=%f\n",a);

return 0;

}

//以上,为何我将float改成double,输出结果依然是3.141593,double的储存字节不是要大一些吗?



时间你别催
浏览 1532回答 2
2回答

onemoo

printf中 %f 默认输出小数点后6位,这和变量a本身的精度无关。

hhh112123123

C里面,默认%f是小数点后6位,如果想小数点后面16位,需要写成%.16lf。 double是一个近似值,通常精确到小数点后面5.6为,超过了就不准了
随时随地看视频慕课网APP
我要回答