double的输出有争议(读入没有):

大体来说,网上流传三种版本,如下:

①float用%f,double用%lf

②float,double都用%f   %f是标准的格式,而%lf则是为了照应习惯

③printf有所谓的“默认参数提升”规则,float会被提升为double,所以printf输出的浮点数只能见到双精度

刘汝佳解释:C99中,double的输出必须用%f,但是在C89和C++中都不必如此,都可以用%lf

printf(“%m.nf”,a);问题:

m是指输出浮点数的实际位数,即几列然并卵,原因会解释

应该注意的是,小数点也占一列(一位)

如果m小于等于a的实际位数,则按实际输出

如果m大于a的实际位数,则在a左边添空格(但如果是%0m.nf就添0)至位数达到m后输出

n是指精确到小数点后几位

如果n小于a实际小数点后的位数,应该是四舍五入(但不排除某些编译器偶尔出现直接切尾的情况)

如果n大于a实际小数点后的位数,在后面添0至小数点后n位

float和double的区别与联系

单精度占4字节,双精度占8字节

单精度有效数字七八位,双精度十五六位

单精度运算快,双精度范围大

%f默认输出6位小数

这俩精度再高,浮点数也不是小数,只是近似数


欢迎来到睿屿青衫丶

avatar
 
微笑晕爱心心碎调皮难过尴尬惊讶惊吓酷泪奔吐彩虹害羞敲打喝彩抠鼻吐星星眼擦汗大笑蛋糕呲牙瞌睡咒骂吃瓜贪财骷髅鬼脸委屈奋斗笑哭摸头小纠结点赞笑崩发呆绿帽狂汗亲嘴么么机智抑郁色鄙视坏笑白眼左哼哼右哼哼捂嘴鼓掌可怜香肠嘴闭嘴墨镜认错思考拒绝鲜花愤怒嘟嘴不忍直视嘘emm流泪yeah睡觉扔鞋石化生病抽烟吐血偷笑衰兔牙害怕震惊捂嘴笑打盹疑问亲亲指开心喜欢阴险郁闷坏笑2搞怪汪好奇汪机智汪冷漠汪搞怪哈摆拍柴柴犬生气柴流泪柴张嘴柴挥爪柴佩服勾引拳头胜利赞踩滑稽
  订阅  
提醒