0

为什么在 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,但不是。那么为什么会这样呢?

有什么想法吗?

4

0 回答 0