Заметил один парадокс. Я в курсе про сабж, но чтоб так... Разве число 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;
}