当我调试时,有时我想打印一个函数返回的浮点数并将其用作另一个函数的输入值。我想知道指导浮点数格式的默认参数是什么。
以下代码中的 f1 和 f2 是否始终相同?
#include <sstream>
#include <cassert>
int main(int argc, const char *argv[])
{
std::stringstream ss;
float f1 = .1f;
ss << f1;
float f2;
ss >> f2;
assert(f1 == f2);
return 0;
}
我可以将一堆浮点数写入 std::cout 或 std::ofsteam 并将它们读回以获得完全相同的数字还是应该明确设置小数点后的数字数量(就像这里建议的那样?
困扰我的是,虽然 .1 不能表示为二进制分数,但它仍然可以由标准流正确格式化。