我試圖運行下面的程序,它的工作原理,但是當我輸入的值超過6位小數時,它會一直變圓/截斷,例如2.999999 - > 3.我如何設置它,使其停止這樣做?爲什麼我輸入的數字只能讀到6位有效數字?
int main()
{
double n=0, x=0;
while (cin >> n >> x) //will keep going until an integer is not entered
{
cout << "You entered the two integers " << x << " and " << n << endl;
if (x-n <= (1.0/10000000) && n-x <= (1.0/10000000))
cout << "The numbers are almost equal" << endl;
}
return 0;
}
你確定它的四捨五入/截斷輸入,或者是它發生在輸出呢? IIRC,'cout'的標準格式化雙打默認設置爲6個重要位置,除非您設置適當的標誌來告訴它否則... – twalberg
yeh它正在輸出... – Physbox
兩個建議。首先,註釋和文本引用「整數」,但值有double類型;這應該可能是固定的。其次,如果使用'abs(x - n)',測試可以變得更簡單;'這樣只需要一個測試。 –