vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2023-01-14 02:45 pm

За что математики не любят компьютерную арифметику

#include <stdio.h>
int main ()
{
    if (-5.2 + 4.9 != -0.3) {
        printf("Oops!\n");
    }
    if (4.8 - 6.1 != -1.3) {
        printf("Oops!\n");
    }
    if (4.3 - 3.6 != 0.7) {
        printf("Oops!\n");
    }
}
Это мне надо было простенький тестик сварганить по работе, суммировать плавающие числа, а оно вон как боком выскочило.
juan_gandhi: (Default)

[personal profile] juan_gandhi 2023-01-15 01:29 am (UTC)(link)

Вечная тема. вообще говоря, вопрос равенства вещественных чисел и теоретически сложен. Проще считать, что это не эквациональная теория.

juan_gandhi: (Default)

[personal profile] juan_gandhi 2023-01-15 01:39 am (UTC)(link)

Ну ты прям физик.

Мы не такие. Я когда-то эмулятор FPP писал, так обнаружил, что могу вполне, на тех 80 битах, выдать точность выше, чем настоящий FPP гонит. Там же еще один запасной бит был, не в регистрах, а в процессе вычислений.