LINUX.ORG.RU

История изменений

Исправление 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]

Покурите на досуге представление чисел с плавающей точкой в памяти.