Это как ожидалось.
Если вы посмотрите двоичное представление 27.8675309 (27.867530822753906 как двойное):
01000001110111101111000010110100
следующее наибольшее значение:
01000001110111101111000010110101
, что дает 27,867533 (27,86753273010254 как двойное), и следующее наименьшее значение:
01000001110111101111000010110011
, которое дает 27,867529 (27,867528915405273 как двойное)
Просто нетбитов в мантиссе Float
достаточно для представления любого значения между ними, поэтому ваше значение округляется в десятичном виде до 27,867530