Почему цифры, которые я ввожу, читаются только с 6 значащих цифр?

Я пытаюсь запустить следующую программу, и она работает, но когда я ввожу значение, которое больше 6 знаков после запятой, оно продолжает округляться / сокращаться, например, 2.999999 -> 3. Как мне установить, чтобы это перестало это делать?

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;

}

1

Решение

Вы можете изменить точность значений, которые вы печатаете, используя std::setprecision:

cout << "You entered the two integers " << setprecision(20) << x
<< " and " << n << endl;

Ссылка на ideone.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector