Вам нужно больше точности, чем число с плавающей точкой, чтобы представить это число.
Удаление форматера из картинки:
Float.parseFloat("177687.71");
177687.7 // Ouch
Double.parseDouble("177687.71");
177687.71 // Ok
Похоже, вам вместо этого нужно использовать double.
Если это для представления денег, хотя, как предлагает @Dawood, то да, не используйте плавающие типы для представления денег, поскольку они являются оценками и со временем будут накапливать ошибки. Такой формат, как BigDecimal, будет более подходящим, или даже просто хранит целое число, представляющее центы. Деньги - это не то, что вы хотите подвергнуть ошибкам округления.