cout 输出浮点数
用 cout 输出浮点数结果时;
如果需输出0.0000012
,则会使用科学计数法,输出结果为1.2e-6
但你想要的结果不是科学计数法形式,则需要使用 fixed
如:cout << fixed << res;
此时输出的 res
为 0.000001
由于精度问题最后一位 2
不会输出,你需要再使用 setprecision
函数。
要想使用 setprecision
函数,需要 #include<iomanip>
用法很简单:setprecision(n)
,n
为你想要输出的小数点后的位数
如:cout << fixed << setprecision(7) << res;
补充
fixed
:这是一个操纵符,用于设置浮点数输出格式为固定小数点格式。这意味着不管浮点数的大小如何,输出时都会以普通的小数形式显示,而不是科学计数法。
setprecision(n)
:这是另一个操纵符,用于设置浮点数的输出精度。这里的 n
指定了包括小数点后的总位数。当与 fixed
一起使用时,n
指小数点后的位数。
使用 setprecision
时,如果输出的数字实际精度低于指定的精度,会用 0
填充。例如,如果指定 setprecision(7)
但数字只有三位小数,则后面会补充四个 0
。
对应的printf
输出
【宽度 & 精度指定 & 左右对齐】:在格式指定符中,可以通过 %m.nf
的形式指定最小栏宽 m
和小数点后的位数(精度) n
。如果输出的数字长度小于 m
,则默认情况下结果会在左侧填充空格以达到指定宽度,即右对齐。若想输出左对齐,则可以通过在 %
后添加 -
符号来实现左对齐输出,如 %-10.2f
。
【显示正号】:使用 %+f
格式指定符会在正数前面显示 +
符号。
【包含空格】:如果希望在正数前添加一个空格以与负数的符号对齐,可以使用 % f
(注意 %
和 f
之间的空格)。
【零填充】:在格式指定符中,可以通过在 %
和宽度指定之间添加 0
来实现零填充,如 %03.2f
,这会在数字前面填充零以达到指定的宽度。