Кто-нибудь может объяснить мне, почему выполнение этой программы становится невозможным, если?
Я знаю существование проблем точности с double и float, но я не могу понять проблему в этом примере ..
Заранее спасибо!
NB. Я скомпилировал его под Ubuntu 10.10 с GCC 4.4.5
#include <stdio.h>
#define NUM_JOINTS 1
typedef struct {
double t1;
double t2;
double t3;
} jointProfile;
jointProfile jp[NUM_JOINTS];
int main() {
jp[0].t1 = 0.51639777949432230652604403076111339032649993896484375;
jp[0].t2 = 0.00000000000000000000000000000000000000000000000000000;
jp[0].t3 = 0.77459666924148340427791481488384306430816650390625000;
double maxTime = (jp[0].t1 + jp[0].t2 + jp[0].t3);
if ((jp[0].t1 + jp[0].t2 + jp[0].t3) < maxTime) {
printf("Infeasible\n");
}
return 0;
}