TigerZF
🌐Español

25.7. ¿Cuánto vale mi moneda?

Cuando trabaja con monedas, normalmente quiere mostrar una cantidad de dinero. Y cuando trabaja con diferentes monedas, tiene que hacerlo con tres cosas distintas: la cantidad que desea mostrar, la precisión que desea usar, y probablemente el tipo de cambio.

25.7.1. Trabajar con valores monetarios

El valor de la moneda, es decir, el dinero, que desea usar puede establecerse fácilmente usando la opción value.

$currency = new Zend_Currency(
    array(
        'value'    => 1000,
        'currency' => 'USD',
    )
);

print $currency; // Could return '$ 1.000'

Usando el método setFormat() con esta opción de array, y también usando el método setValue(), puede establecer el valor posteriormente.

$currency = new Zend_Currency(
    array(
        'value'    => 1000,
        'currency' => 'USD',
    )
);

print $currency->setValue(2000); // Could return '$ 2.000'

Con el método getValue() obtendrá el valor actualmente establecido.

25.7.2. Uso de la precisión en las monedas

Cuando trabaja con monedas, probablemente también tenga que gestionar la precisión. La mayoría de las monedas usan una precisión de 2. Esto significa que cuando tiene 100 dólares estadounidenses, también podría tener 50 centavos. El valor relacionado es simplemente un valor de coma flotante.

$currency = new Zend_Currency(
    array(
        'value'    => 1000.50,
        'currency' => 'USD',
    )
);

print $currency; // Could return '$ 1.000,50'

Por supuesto, como la precisión por defecto es 2, obtendrá '00' como valor decimal cuando no haya ninguna precisión que mostrar.

$currency = new Zend_Currency(
    array(
        'value'    => 1000,
        'currency' => 'USD',
    )
);

print $currency; // Could return '$ 1.000,00'

Para deshacerse de esta precisión por defecto, simplemente podría usar la opción precision y establecerla en '0'. Y puede establecer cualquier otra precisión que desee usar entre 0 y 9. Todos los valores se redondearán o se ampliarán cuando no se ajusten a la precisión establecida.

$currency = new Zend_Currency(
    array(
        'value'     => 1000,30,
        'currency'  => 'USD',
        'precision' => 0
    )
);

print $currency; // Could return '$ 1.000'