【发布时间】:2011-07-10 03:29:40
【问题描述】:
我在控制台上显示了大量的双精度数,我想提前知道 std::cout 将决定为给定的双精度显示多少个小数位。这基本上是这样我可以让它在控制台中看起来很漂亮。 例如(伪代码)
feild_width = find_maximum_display_precision_that_cout_will_use( whole_set_of_doubles );
...
// Every cout statement:
std::cout << std::setw( feild_width ) << double_from_the_set << std::endl;
我认为 cout “猜测”?基于双精度显示的良好精度。比如好像显示
std::cout << sqrt(2) << std::endl;
如 1.41421,但也
std::cout << (sqrt(0.5)*sqrt(0.5) + sqrt(1.5)*sqrt(1.5)) << std::endl;
作为 2(而不是 2.000000000000?????? 或 1.99999999?????)。好吧,也许这会精确计算为 2.0,但我认为 sqrt(2) 不会精确计算为 1.41421,因此 std::cout 必须决定在某个点显示多少小数位,对吧?
是否有可能预测这一点来制定find_maximum_display_precision...() 函数?
【问题讨论】:
标签: c++