DBG(String(-0.002,2)); ==> "-0.00"

DBG(String(-0.002,2)); ==>  "-0.00"   

should be "0.00" ?

Could be argued either way.

It'd be a huge amount of extra work if the function had to check whether any significant digits are non-zero before adding a minus sign, and I don't think it'd be worth it to avoid an edge-case like this. (And TBH I'd be surprised if all other float->int converters don't behave exactly the same way - they're bound to just compare the value with 0 to decide on the minus)