2026-03-28

Блеск и нищета float

Какое расстояние между соседними числами в float? Зависит от значения, в некторых случаях между соседними числами может быть разница в 1024 а может и не быть вовсе!

#include <stdio.h>

int main(void) {
    float x = 1e10f;

    printf("x        = %.0f\n", x);
    printf("x + 1    = %.0f\n", x + 1.0f);
    printf("x + 1000 = %.0f\n", x + 1000.0f);
    printf("x + 1024 = %.0f\n", x + 1024.0f);

    return 0;
}
	

x = 10000000000
x + 1 = 10000000000
x + 1000 = 10000001024
x + 1024 = 10000001024

Прям очень неожиданно может получиться если неправильно использовать числа с плавающей запятой с программе если это не учитывать!

 

комментарии:

 

Для того чтобы каждый раз не представляться можно войти как зарегистрированный пользователь.

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться