separar redondeo pesos number_format number money_format money lc_monetary decimales colombia php yii2 money-format

redondeo - separar decimales php



yii2-cómo establecer el valor decimal de la moneda (2)

Quiero que mi moneda ignore el valor decimal, hasta ahora tengo esto:

main.php:

''formatter'' => [ ''class'' => ''yii/i18n/Formatter'', ''thousandSeparator'' => ''.'', ''decimalSeparator'' => '','', ''currencyCode'' => ''€'', ],

ver:

[ ''attribute'' => ''Score'', ''format'' => ''currency'', ],

¿Alguna idea sobre cómo avanzar?


El manual sobre currencyCode :

El código de moneda ISO 4217 de 3 letras que indica la moneda predeterminada para usar

Intenta configurar currencyCode en ''EUR'' (aunque eso no parece ser tan importante) y pon el formateador en una matriz

[ ''attribute'' => ''Score'', ''format'' => [ ''currency'', ''EUR'', [ /NumberFormatter::MIN_FRACTION_DIGITS => 0, /NumberFormatter::MAX_FRACTION_DIGITS => 0, ] ], ],

Esto requiere que se instale la extensión PHP intl. El estado de la extensión se puede probar llamando a extension_loaded(''intl'') . En ausencia de la extensión, la mejor opción es escribir un formateador personalizado.

<?php namespace app/components; class Formatter extends /yii/i18n/Formatter { public function asRoundedCurrency($value, $currency) { return $this->asInteger(round($value)) . '' '' . $currency; } }

Úselo en lugar del formateador predeterminado y luego llámelo así:

[ ''attribute'' => ''Score'', ''format'' => [''roundedCurrency'', ''EUR''], ]

Esto también le permite establecer libremente el símbolo de moneda.


En main.php:

''formatter'' => [ ''class'' => ''yii/i18n/Formatter'', ''locale'' => ''yourLocale'', //ej. ''es-ES'' ''thousandSeparator'' => ''.'', ''decimalSeparator'' => '','', ''currencyCode'' => ''EUR'', ],

Asegúrese de que las extensiones php_intl estén instaladas. Esto funciona para mi.

Enlace a la documentación yii-i18n-formateador .