parseFloat("-999999999999999.9991") returns -1000000000000000
и при отладке
(-1000000000000000 == -999999999999999.999) условие истинно.
(-1000000000000000 == -999999999999999.999)
Операции с плавающим типом данных имеют ограниченную точность, и они часто приводят к ошибкам при округлении чисел, как в вашем случае.