>... too dangerous to change the user's actual input ...
>... never really being sure what the user entered ...
Human input should
always be
verified and
changed if incorrect, in the wrong format or if a typo is detected. Luckily it is simple to do with script. Here is the core code (for use with IOL) for negating the number entered by your human:
$("#_fid_6").on("change", function() {
$("#_fid_6").val(- parseFloat($("#_fid_6").val()));
});
Using a formula to do this only bloats your application with superfluous fields (assuming there is no need for retaining the human's original keystrokes).