История изменений
Исправление Reset, (текущая версия) :
Нет. По определению машинный эпсилон это максимальное такое число, что 1+eps=1.
$ cat 1.c
#include <stdio.h>
int main() {
double eps = 1./(1L<<53);
double not_eps = 1./(1L<<52);
double a = 1e-17;
double b = 2e-17;
printf("%e %e %d %d %d %d %e %e\n", eps, not_eps, (1.+eps==1.), (1.+not_eps==1.), (a==b), (a<eps), a, b);
}
$ ./a.out
1.110223e-16 2.220446e-16 1 0 0 1 1.000000e-17 2.000000e-17
Покурите на досуге представление чисел с плавающей точкой в памяти.
Исходная версия Reset, :
Нет. По определению машинный эпсилон это максимальное такое число, что 1+eps=1. [code] $ cat 1.c #include <stdio.h>
int main() { double eps = 1./(1L<<53); double not_eps = 1./(1L<<52); double a = 1e-17; double b = 2e-17; printf(«%e %e %d %d %d %d %e %e\n», eps, not_eps, (1.+eps==1.), (1.+not_eps==1.), (a==b), (a<eps), a, b); } $ ./a.out 1.110223e-16 2.220446e-16 1 0 0 1 1.000000e-17 2.000000e-17 [/code]
Покурите на досуге представление чисел с плавающей точкой в памяти.