为什么我的双倍小数点? C ++

时间:2014-12-14 18:47:16

标签: c++

在if语句中输入double后,我的double丢失了小数位。如果我先输入1.0000001,第二次输入1。那是为什么?

#include <iostream>
using std::cin;
using std::cout;
using std::endl;

int main()
{
    double first = -1;
    double second = -2;

    cin >> first >> second; // 1.0000001 >> 1

    if(first - second > 0 )
        cout << first << endl << second;
}

1 个答案:

答案 0 :(得分:1)

你的双重不会失去&#34;小数位。当你没有提供任何小数位时,你可能会问为什么你的初始化有效。

cout根据数字的值选择要显示的小数位数。在这种情况下,显示小数位没有意义,因为它们都是零。

如果您想显示小数位,请使用the I/O manipulators

#include <iostream>

int main()
{
    double first = -1;
    double second = -2;

    std::cin >> first >> second;
    std::cout << std::fixed;
    if(first - second > 0 )
        std::cout << first << std::endl << second;
}

// -1.000000
// -2.000000

live demo