我有以下行显示只有3位小数的float
个数字:
myfile << dSet[i].probability[j] << setprecision(3);
它通过150行数据,它打印所有这些数据都很好(按预期的3位数),除了一些数据(特别是第一个数据):
...e...
数字没问题,但对于其他人,我希望它只显示小数点后的3位数。
答案 0 :(得分:0)
这里有两个问题,第一个是你不打电话 {<1}}直到之后输出第一个值,所以 它以默认精度6输出。
第二个是你突出显示的所有其他输出都是输出 精度为3:在所有情况下,有三个显着 数字。问题是&#34;精度&#34;有不同的含义 根据输出格式。
从您的输出中,我假设您使用的是默认输出格式,其中精度意味着
确切地说:有效数字的数量(以及是否使用科学格式或固定的选择取决于值)。固定或科学的格式,精确意味着
小数点后的位数,使用固定格式,例如,您的第二个突出显示的条目将是setprecision
(听起来像您想要的那样),并且您拥有的科学格式的值都是{{1} }。
如果您希望较小的值以科学格式显示,则可能需要执行此操作
测试你自己,根据你的标准设置固定或科学。 (默认格式的标准是指数小于0.008
。)