Formateur de numéro : délimité, global

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 4 minutes de lecture
  • L’API NumberFormatter inclut des méthodes qui renvoient des nombres formatés en fonction de la langue de l’utilisateur actuel.

    Cette API est disponible dans les applications incluses dans le périmètre et globales et s’exécute dans l’espace de noms sn_i18n .

    Lorsqu’ils sont formatés par langue ou par paramètre régional, les utilisateurs peuvent afficher les nombres comme prévu. Par exemple, si les paramètres régionaux sont fr (français), une valeur fournie comme 100,00 renvoie 100,00.

    NumberFormatter – format(numéro numérique)

    Renvoie une représentation de chaîne d’un nombre formatée en fonction du paramètre de langue de l’utilisateur actuel.

    Tableau 1. Paramètres
    Nom Type Description
    Numéro Numéro Nombre de n’importe quelle taille.
    Tableau 2. Renvoie
    Type Description
    Chaîne Nombre formaté en fonction du paramètre de langue de l’utilisateur actuel.

    L’exemple suivant montre les résultats de retour pour un utilisateur dont la langue est définie sur l’espagnol.

    gs.info("Number is: " + sn_i18n.NumberFormatter.format(123456.789));
    gs.info("Number is: " + sn_i18n.NumberFormatter.format(-123456.789));

    Sortie :

    Number is: 123.456,789
    Number is: -123.456,789

    NumberFormatter – formatLang(numéro, numéro, langage de chaîne)

    Renvoie une représentation de chaîne d’un nombre formaté en fonction de la langue transmise en tant que paramètre.

    Tableau 3. Paramètres
    Nom Type Description
    Numéro Numéro Nombre de n’importe quelle taille.
    language Chaîne Balise de langue conforme à la norme IETF BCP-47.
    Tableau 4. Renvoie
    Type Description
    Chaîne Nombre formaté en fonction de la langue transmis en paramètre.

    L’exemple suivant montre la sortie pour le paramètre de langue allemande.

    gs.info("Number is: " + sn_i18n.NumberFormatter.formatLang(123456.789, "de-de"));
    gs.info("Number is: " + sn_i18n.NumberFormatter.formatLang(-123456.789, "de-de"));

    Sortie :

    Number is: 123.456,789
    Number is: -123.456,789

    NumberFormatter : parseWithLocale(numéro de chaîne, langue de la chaîne, pays de la chaîne)

    Analyse un nombre à partir d’une chaîne de texte transmise, de gauche à droite, pour extraire la valeur numérique. Il utilise ensuite les codes de pays et de langue transmis pour identifier les paramètres régionaux du numéro et renvoie le nombre analysé dans ce format.

    Cette méthode analyse la chaîne jusqu’à ce qu’elle atteigne un caractère qu’elle ne reconnaît pas comme valeur numérique ou séparateur de devise.

    Tableau 5. Paramètres
    Nom Type Description
    Numéro Chaîne Chaîne à analyser. Cette chaîne peut contenir des valeurs numériques et des séparateurs de devise tels que des virgules et des décimales. Par exemple : « 24 506,55 » ou « 45 677,89 ».
    language Chaîne Code de langue ISO-639 à deux caractères.
    pays Chaîne Code pays ISO-3166 à deux caractères.
    Tableau 6. Renvoie
    Type Description
    Numéro Nombre analysé au format des paramètres régionaux spécifiés.

    Lève une exception si le premier caractère de la chaîne ne peut pas être analysé.

    Par exemple :
    • « 123.34 » : Analyse à 123.34 tant que le séparateur décimal des paramètres régionaux est un point.
    • « 1,234.56 » : Analyse jusqu’à 1234.56 tant que le séparateur de regroupement des paramètres régionaux est une virgule et que le séparateur décimal est un point.
    • « 1.234.567,89 » : Si le séparateur de regroupement est autre chose qu’un point, analyse à 1.
    • « 123x456 » : Analyse à 123.
    • « text123 » : entraîne la levée d’une ParseException par la méthode.

    L’exemple de code suivant illustre l’analyse de chaînes pour divers paramètres régionaux, ainsi que l’analyse d’une chaîne avec des séparateurs inattendus. Le dernier exemple n’analyse que partiellement la chaîne car un espace n’est pas un séparateur valide.

    var x = sn_i18n.NumberFormatter.parseWithLocale("48,837.77", "en", "US");
    var y =  sn_i18n.NumberFormatter.parseWithLocale("77.931,22", "de", "DE");
    var z = sn_i18n.NumberFormatter.parseWithLocale("562 339,89", "fr", "FR");
    var specialCase = sn_i18n.NumberFormatter.parseWithLocale("400 797,67", "en", "US");
    
    gs.info(x);
    gs.info(y);
    gs.info(z);
    gs.info(specialCase);

    Sortie :

    48837.77
    77931.22
    562339.89
    400

    NumberFormatter : parseWithSeparators (numéro de chaîne, groupe de chaînesSéparateur, chaîne decimalSeparator)

    Analyse et renvoie un nombre d’une chaîne de texte passée, de gauche à droite, jusqu’à ce qu’elle rencontre un caractère qu’elle ne peut pas analyser. Les valeurs analysables comprennent les nombres et les séparateurs de regroupement et décimaux spécifiés.

    Tableau 7. Paramètres
    Nom Type Description
    Numéro Chaîne Chaîne à analyser. Cette chaîne peut contenir des valeurs numériques et les séparateurs spécifiés tels que des virgules et des décimales. Par exemple : « 24 506,55 » ou « 45 677,89 ».
    regroupementséparateur Chaîne Caractère qui désigne le séparateur de regroupement, également appelé séparateur de milliers, dans la chaîne transmise.

    Par exemple : virgule « , », point « . » ou espace « ».

    décimalSeparator Chaîne Caractère qui désigne le séparateur décimal dans la chaîne transmise.

    Par exemple : virgule « , », point « . » ou espace « ».

    Tableau 8. Renvoie
    Type Description
    Numéro Nombre analysé.

    Lève une exception si le premier caractère de la chaîne ne peut pas être analysé.

    Par exemple :
    • « 123.34 » : Analyse à 123.34 tant que le séparateur décimal des paramètres régionaux est un point.
    • « 1,234.56 » : Analyse jusqu’à 1234.56 tant que le séparateur de regroupement des paramètres régionaux est une virgule et que le séparateur décimal est un point.
    • « 1.234.567,89 » : Si le séparateur de regroupement est autre chose qu’un point, analyse à 1.
    • « 123x456 » : Analyse à 123.
    • « text123 » : entraîne la levée d’une ParseException par la méthode.

    L’exemple de code suivant montre comment analyser des nombres à l’aide de différents séparateurs. Notez que l’exemple d’analyse final n’analyse que les trois premiers chiffres du nombre, car un espace n’est pas un séparateur valide.

    var x = sn_i18n.NumberFormatter.parseWithSeparators('48,837.77', ',', '.');
    var y =  sn_i18n.NumberFormatter.parseWithSeparators('77.931,22', '.', ',');
    var z = sn_i18n.NumberFormatter.parseWithSeparators('562 339,89', ' ', ',');
    var specialCase = sn_i18n.NumberFormatter.parseWithSeparators('400 797,67', '.', ',');
    
    gs.info(x);
    gs.info(y);
    gs.info(z);
    gs.info(specialCase);

    Sortie :

    48837.77
    77931.22
    562339.89
    400