The easiest solution is to use the conditional-formatting function associated with the field's display string
property:
If {table.IsRatePercent} Then
ToText(CurrentFieldValue,"###,###.## %")
Else
ToText(CurrentFieldValue,"$###,###.##")
Another option:
If {table.IsRatePercent} Then
ToText(CurrentFieldValue, 2, ",", ".") + " %"
Else
"$" + ToText(CurrentFieldValue, 2, ",", ".")