(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
NumberFormatter::setAttribute -- numfmt_set_attribute — Affecte un attribut du formateur
Style orienté objet
Style procédural
Affecte un attribut numérique du formateur. Un exemple d'attribut numérique est le nombre de chiffres de la partie entière que le formateur va produire.
formatterL'objet NumberFormatter.
attributeL'identifiant d'attribut : une des constantes attributs numériques.
valueLa valeur de l'attribut.
Exemple #1 Exemple avec numfmt_set_attribute(), Style procédural
<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>Exemple #2 Exemple avec numfmt_set_attribute(), style POO
<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>L'exemple ci-dessus va afficher :
Digits: 3 1.234.567,891 Digits: 2 1.234.567,89
Exemple #3 Utilisation de NumberFormatter::ROUNDING_MODE pour tronquer les valeurs
Par défaut, NumberFormatter arrondit les valeurs. En utilisant
NumberFormatter::ROUND_DOWN comme
NumberFormatter::ROUNDING_MODE, les valeurs sont tronquées
au nombre de chiffres fractionnaires spécifié sans arrondi.
<?php
$fmt = new NumberFormatter('en_US', NumberFormatter::DECIMAL);
$fmt->setAttribute(NumberFormatter::FRACTION_DIGITS, 2);
echo "Mode par défaut d'arrondi:\n";
echo $fmt->format(3.789), "\n"; // 3.79 (arrondi au dessus)
echo $fmt->format(3.781), "\n"; // 3.78 (arrondi en dessous)
$fmt->setAttribute(NumberFormatter::ROUNDING_MODE, NumberFormatter::ROUND_DOWN);
echo "\nAvec ROUND_DOWN (tronquer):\n";
echo $fmt->format(3.789), "\n"; // 3.78 (tronqué)
echo $fmt->format(3.781), "\n"; // 3.78 (tronqué)
?>L'exemple ci-dessus va afficher :
Mode par défaut d'arrondi: 3.79 3.78 Avec ROUND_DOWN (tronquer): 3.78 3.78