3606: keep track of original float

When a negative float was encountered, its value was changed but
this, then, lost the sign of the float when it was used as the key
for the replacements. Now the key is captured before the calculation
begins.