Это длинная история, вы можете найти в Google некоторые ключевые работы, такие как «Что должен знать каждый программист об арифметике с плавающей точкой», появятся некоторые очень хорошие релевантные страницы.
Короче говоря, floatФормат точек, с плавающей точкой или двойной, может представлять число только с определенной точностью.Алгоритм должен быть тщательно разработан в некоторых случаях, чтобы получить разумную точность, например, минимальная точка с плавающей точкой x, которая составляет (1,0 + x) -1,0! = 0,0, определяется как FLT_EPSILON, его значение на удивление больше, чем вы могли ожидать.