Unexpected behavior in tf() and tc() with negative numbers

tf() treats the negative sign from negative numbers as a digit, resulting in incorrect padding with single digits 0 through 9. For example, tf(date,mm) will return '-1' instead of '-01'. Furthermore, tf(date,mmm) will return '0-1' instead of '-001'.

tc() also treats the negative sign as a digit, appends a '.0' at the end (the opposite of left padding) and then counts the period as a digit. For example, tc(lpad,-3,6,0) returns '00-3.0' instead of '-000003'.

tc(rpad,-3,6,0) returns '-3.000' instead of '-3.000000'.