(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 décimales à afficher par le formateur.
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 (rounded 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