这是一个显示函数的内部。我想用2个小数点打印重量。在这个代码块之外,我不希望setprecision生效。例如,777.555和444.2222应正确显示。
// Detect if train has cargo:
if (cargo_unit)
{
// If cargo exists, print output:
cout << **fixed << setprecision(2);**
cout << " Cargo: " << cargo_unit->getDesc() <<
endl << " Weight: " << cargo_unit->getWeight() << endl;
}
问题是,一旦我使用了fixed << setprecision,我只能将它重置为5或6这样的数字,然后得到这个:
777.555000
444.222200
3条答案
按热度按时间mrphzbgm1#
您可以保存以前的标志和精度,然后恢复它们,例如:
oaxa6hgo2#
使用
std::defaultfloat
重置std::fixed
。请访问this link了解更多信息。
zmeyuzjn3#
这里有一种替代方法,使用std::cout.precision()在将默认精度更改为2之前保存它,然后在需要时将其恢复为默认值。