Not sure if this might help, but here is a perl function I call from a
template to format money.  It takes the amount and a flag which specifies
whether to include the dollar sign or not.

sub money {
   my $self = shift;
   my $number = sprintf "%.2f", shift;
   my $nosign = shift;
   # Add one comma each time through the do-nothing loop
   1 while $number =~ s/^(-?\d+)(\d\d\d)/$1,$2/;
   # Put the dollar sign in the right place
   unless ($nosign == 1) {
      $number =~ s/^(-?)/$1\$/;
   }
   return $number;
}



----- Original Message ----- 
From: "Buddy Burden" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, August 19, 2004 2:16 PM
Subject: [Templates] Putting commas in money values


> Guys,
>
> Okay, the canonical MACRO example goes something like:
>
> [% MACRO commify(n) GET n.chunk(-3).join(',') %]
>
> Simple enough.  But what if you have decimal places on the end?  I mean,
> I know I can do this the hard way, but I keep feeling like I'm missing
> something.  Is there some easy way, or maybe existing
> plugin/filter/predefined macro somewhere?  I'm sure it's a problem
> others have faced before me.
>
> TIA.
>
>
> -- Buddy
>
> _______________________________________________
> templates mailing list
> [EMAIL PROTECTED]
> http://lists.template-toolkit.org/mailman/listinfo/templates
>


_______________________________________________
templates mailing list
[EMAIL PROTECTED]
http://lists.template-toolkit.org/mailman/listinfo/templates

Reply via email to