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");
    }
}
Это мне надо было простенький тестик сварганить по работе, суммировать плавающие числа, а оно вон как боком выскочило.
archaicos: Шарж (Default)

[personal profile] archaicos 2023-01-15 02:07 am (UTC)(link)
Используй шестнадцатеричные вещественные константы типа 0x1p-1. Их уже давно завезли в С и C++.
archaicos: Шарж (Default)

[personal profile] archaicos 2023-01-15 03:21 am (UTC)(link)
Если он на плюсах, то стандартная библиотека конвертнёт, надо лишь распарсить.
Если на питоне, то надо поискать, может тоже простое решение. Хотя, шестнадцатеричное можно и самому преобразовать, т.к. сложное уже отсутствует.

если на плюсах ...

[personal profile] h1uke 2023-01-15 04:08 am (UTC)(link)
или на Питоне лезть на этот уровень --
то поневоле вспоминаешь древнюю формулу: "со свиным рылом в калашный ряд" :)

будто эти ваши плюсы, или там Питон - это не программы, написанные изначально на "лысом С"