And if you wanted to keep decimal places, the best way would probably be to do something like:
Code:
commas {
  .var %int $int($1)
  .var %decimals $right($calc($1 - $int($1)),-1)
  if ( 3 < $len(%int) && $len(%int) < 7 ) {
    return $left(%int,-3) $+ , $+ $right(%int,3) $+ %decimals
  }
  elseif ( 6 < $len(%int) && $len(%int) < 10 ) {
    return $left(%int,-6) $+ , $+ $mid(%int,-6,-3) $+ , $+ $right(%int,3) $+ %decimals
  }
  elseif ( 9 < $len(%int) && $len(%int) < 13 ) {
    return $left(%int,-9) $+ , $+ $mid(%int,-9,-6) $+ , $+ $mid(%int,-6,-3) $+ , $+ $right(%int,3) $+ %decimals
  }
  else {
    return $1
  }
}

Again, redundance, I know. But hey, it works, and it works darn well.