c语言%f输出问题

float在VC6.0中有限位数不是7位吧,为什么显示的有效位数是16位,16位不是double的有效范围吧,用sizeof(a/3)查看又是4个字节,是FLOAT的

printf("%.2f\n",a/3); 把那句输出改成这句。。。。%.20f表示要精确到小数20位,你的意思是想精确到小数点后两位吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-20
不是你指定.20f了么。a/3后边来来就除不尽,还有别的数。
a/ 3 = 0.3333333333333333。。。。。本来7位后是还有的。
%f只是默认把7位后的截断省略而以,但a/3 7位后本来还是有的你又指定了后边20位。要后边没的才补0.
相似回答