Affecte un attribut du formateur

# NumberFormatter::setAttribute

# numfmt_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attribute — Affecte un attribut du formateur

### Description

Style orienté objet

public function NumberFormatter::setAttribute(int `$attribute`, int|float `$value`): bool

Style procédural

function numfmt_set_attribute(NumberFormatter `$formatter`, int `$attribute`, int|float `$value`): bool

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.

### Liste de paramètres

`formatter`

  L'objet NumberFormatter.

`attribute`

  L'identifiant d'attribut : une des constantes attributs numériques.

`value`

  La valeur de l'attribut.

### Valeurs de retour

Cette fonction retourne `true` en cas de succès ou `false` si une erreur survient.

### Exemples

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

### Voir aussi

- numfmt_get_error_code() - Lit le dernier code d'erreur du formateur
- numfmt_get_attribute() - Lit un attribut
- numfmt_set_text_attribute() - Modifie un attribut texte

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open