I don't have a great idea, or a great answer, but I have something that should work. How large are the numbers you're working with?
You can use a bunch of rules:
Condition: value >= 1000000000
Action: set field: concat('$', floor(value div 1000000000), ',', floor(value mod 1000000000 div 1000000), ',', floor(value mod 1000000 div 1000), ',', floor(value mod 1000))
Condition: value >= 1000000 and value < 1000000000
Action: set field: concat('$', floor(value div 1000000), ',', floor(value mod 1000000 div 1000), ',', floor(value mod 1000))
Condition: value >= 1000 and value < 1000000
Action: set field: concat('$', floor(value div 1000), ',', floor(value mod 1000))
Condition: value < 1000
Action: set field: concat('$', floor(value))