为什么在 C++ 中,showpoint
机械手只有六位有效数字的限制?如果任何东西超过六位数,就会发生奇怪的事情。这就是让我想到这个问题的原因:
int main()
{
double x = 1.345;
cout << showpoint << x << endl;
return 0;
}
输出:1.34500
正如预期的那样,这完全没问题。但是,如果我做这样的事情,我超过了六位有效数字的限制,输出会发生奇怪的事情:
int main()
{
double x = 1.345678;
cout << showpoint << x << endl;
return 0;
}
输出:1.34568
请注意,7
缺少 ,并且似乎被替换为8
。因为按道理,我们x
的初始化是1.345678
. 所以,我们应该相反,得到1.345678
,但不是。那么为什么会这样呢?
有什么想法吗?