This may be a silly question, but is there a reason you used written-out numbers for the social format instead of like this?

1E03-<1E06='000K' (mult=.001 )
1E06-<1E09='000.9M' (mult=.00001)
1E09-<1E12='000.9B' (mult=1E-08)
1E12-<1E15='000.9T' (mult=1E-11);