Search code examples
phpzend-frameworkzend-view

zend currency negative sign


Hello i am using Zend_currency

class Currency extends Zend_View_Helper_Abstract
{

    public function currency($number, $locale = 'it_IT') {
        $currency = new Zend_Currency($locale);

        $number = $number + 0.00;//convert to float

        return $currency->toCurrency((float) $number);

    }
}

in a some view .phtml file

echo $this->currency($gimme_my_money);

and this is what i get

€ 19.373,25
-€ 116,07

how can i get it to print negative numbers like

€ -116,07

Solution

  • I don't think this formatting option is built into Zend_Currency.

    What you can do, is move the currency symbol to the right side:

    $this->view->total = new Zend_Currency(array('value' => $total, 'position' => Zend_Currency::RIGHT));
    

    And then your currencies will be displayed with the currency symbol on the right:

     -19.373,25 €
    

    If you want a custom formatting, with the negative sign after the symbol, (€ -116,07), you will have to write your own currency formatter or built on top of Zend_Currency