В моей программе, у меня есть расчет, какDecimals При вычитании двух чисел
a = a * b * c;
d = f * b* c; // here f and a are same value
d = d - a;
Когда я печатаю значение д, я получил результат ниже:
-1.95399e-14
Таким образом, я установил точность и напечатал переменную, используя фиксированный в cout.
Результат:
-0,00000000000001954
Я хочу, чтобы напечатать значение д и а, перед выражением d = d - a;
Так что я изменил мой код, как,
cout<< d << endl;
cout<< a << endl;
Когда я включаю вышеуказанные t горе линии, результат переменной «D» после этого выражения является именно «0»
Если я не напечатаю значение переменной «г» и «а», это дает результат в виде -1.95399e-14;
В обоих случаях я хочу, чтобы результат был равен «0». Как я могу это сделать? Что делает этот cout statment?
Плавающая точка не является точной. Это так просто. http://floating-point-gui.de/ – PaulMcKenzie
Предоставьте код, который вы используете. И как уже было прокомментировано: читайте о плавающих точках, потому что компьютерная арифметика отличается от математической арифметики в отношении некоторых аспектов (особенно точности и арифметики с плавающей запятой). – Elyasin