那%d呢
追答%d是整数,但是%d不能用来输出float
输出格式表一定要和后面的数据对应,要不然容易溢出
追问......
必须写出小数点后六位?
%d必须写出小数点后16位?
float最多显示几位?就是有效位
我刚刚学这些东西有点头晕
追答把格式控制和类型精度搞混了吧?
实际上printf中的%f格式,是不需要“l”前缀的,简单说就是%f匹配double的输出
那为啥float也可以匹配呢,因为printf后面是可变参数域(就是声明中的“...”),往这个地方传递float类型的值,会自动提升为double
而有的编译器是认%lf的输出格式的,主要是兼容一些习惯,但printf的文档里是没有的,即“l”前缀并不能应用于f(以及类似f的浮点数的输出格式,e/E或g/G这种)
但并不是所有编译器都这么支持,严格点还是用%f好
作者:冒泡
链接:https://www.zhihu.com/question/59720949/answer/168924657
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
因为float吗?但是如果换成double呢?是后十二位吗
在这个编译环境下%f输出六位小数
#include <bits/stdc++.h>而且这里的PI不精确
c++中这道题为什么保留小数点后六位?而不是314.15?
在格式化输出中,%f默认输出小数点后六位