在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;
}
答案 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