我显示分区表的功能正在运行,但我想格式化输出以允许小数点前面的任意数字,但将后面的小数位数限制为2.这是我正在使用的代码。一旦我添加了行cout.setf(std::ios::fixed, std::ios::floatfield)
,我的数据似乎格式正确,但我在实际数字的前面附加了额外的数字。
因此,程序不是打印1.00
,而是打印40981.00
,并为所有结果执行此操作。 (前面的数字确实变为4102x.xx
)x是所需的输出。
void print_div_values(mult_div_values ** table, float x, float y){
cout << endl << "Here is the division table: " << endl;
for (int i = 1; i <= y; i++)
{
cout << endl;
for (int j = 1; j <= x; j++)
{
cout << std::setw(5) << cout.setf(std::ios::fixed, std::ios::floatfield) << std::setprecision(2) << table[i][j].div;
}
cout << endl;
}
答案 0 :(得分:5)
std::ostream::setf
返回旧标志,然后按cout
格式化为整数。使用
cout.setf(std::ios::fixed, std::ios::floatfield);
cout << std::setw(5) << std::setprecision(2) << table[i][j].div;