Заметил один парадокс. Я в курсе про сабж, но чтоб так... Разве число 4.8 такое большое, что не запомнить его точность?
При r = 3
и a = 4.8
прога выводит:
./1.18 3 4.8
r = 3
a = 4.79999999999999982236431605997495353221893310546875
r/a = 0.625
5.0/8.0 = 0.625
r/a != 5.0/8.0 = true
#include <iostream>
#include <cmath>
using namespace std;
int main(int argc, char *argv[])
{
if(argc != 3)
{
cerr << "Использование: команда r a" << endl;
return 1;
}
const double r = atof(argv[1]);
const double a = atof(argv[2]);
cout.precision(100);
cout << "r = " << r << endl;
cout << "a = " << a << endl;
cout << "r/a = " << r/a << endl;
cout << "5.0/8.0 = " << 5.0/8.0 << endl;
cout << "r/a != 5.0/8.0 = " << boolalpha << ( r/a != 5.0/8.0) << endl;
return 0;
}
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от nsav-ng
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум gcc cos(1)=0.540302 (2011)
- Форум C++/exceptions - деление на ноль не ловиццо, почему? (2006)
- Форум Не компилируется программа :( (2008)
- Форум C++ iostream::failbit (2005)
- Форум Реализация рестартов из Common Lisp в C++ (2016)
- Форум Продолжим про исключения!! (2007)
- Форум C++ простая программа (2014)
- Форум boost.asio, boost.serialization (2010)
- Форум с++, long double, непонятное поведение (2008)
- Форум constexpr массивы в c++ (2018)