Блеск и нищета float
Какое расстояние между соседними числами в float? Что будет если к числу с плавающей точной прибавить другое чесло с плавающей точкой? Зависит от значения, результат может равняться ожидаемому но в некторых случаях разница между результатом и исходным числом может быть нулевой а в некторых отличаться на несколько сотен!
#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
Из-за особенностей хранения float при малых значениях точность представления чисел сопоставима с int а на больших значениях рассторяния между числами на численной оси увеличиваются и достигают довольно больших значени. Прям очень неожиданно может получиться если это не учитывать!
разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться
комментарии: