improve number/sign behavior when value is NaN. see #36
typecast val on number/sign and handle +0 and -0 properly. see #36
Merge pull request #40 from millermedeiros/sign

improve number/sign behavior when value is NaN or +0 or -0