Mark, i've used this formula and it retains the decimals and it also extends to millions

var number Value = Round([MY FIELD],0.01);

var text Decimals = "." & Right(ToText(Int($value * 100)),2);

var text Thousands = If(Abs($Value)>=1000,ToText(Int(Abs($Value)/1000)));

var text Hundreds=Right(ToText(Int($Value)),3);

var text Millions = If($Value>=1000000,ToText(Int($Value/1000000)));

If($value>=1000000,"$" & ToFormattedText($value, "comma_dot") & $decimals,

If($Value=0,"$0.00",

If($Value<0, "- ")

&

"$" & List(",",$Millions,$Thousands,$Hundreds) & $Decimals))