The Format(15) command returns the absolute value of the current format's precision. If the precision is negative, therefore, you will get an inaccurate result from this function.
Not listed in the Scripting Reference due to a very late addition, is the Format(32768) function. This new argument to the Format() function determines whether or not the precision is negative.
You can use these arguments in conjunction with the If function to return the proper precision:
If(Format(32768), 0 - Format(15),Format(15))