Fonctions Decimal, Float et Value

S'applique à : Applications Canvas Colonnes de formule Dataverse Flux de bureau Applications pilotées par modèle CLI Power Platform

Convertit une chaîne de texte ou d’autres types en nombre.

Description

Note

Power Apps ne prend en charge que la fonction Value et il renvoie une valeur Float. La prise en charge des fonctions Decimal et Float sera bientôt ajoutée.

Utilisez les fonctions Decimal, Float et Value pour convertir une chaîne de texte contenant des caractères numériques en valeur numérique. Utilisez ces fonctions lorsque vous devez effectuer des calculs sur des nombres saisis sous forme de texte par un utilisateur. Ces fonctions peuvent également être utilisées pour convertir d’autres types en nombre, comme une date/heure et un booléen.

La fonction Value renverra le type de données numérique par défaut pour l’hôte Power Fx que vous utilisez, qui est généralement Decimal et le meilleur choix pour la plupart des situations. Utilisez les fonctions Decimal et Float lorsque vous avez besoin d’un type de données spécifique pour un scénario particulier, comme un calcul scientifique avec un très grand nombre. Pour plus de détails sur l’utilisation de ces types de données, consultez la section Nombres de Types de données.

Selon les langues, les symboles , et . peuvent être interprétés différemment. Par défaut, le texte est interprété dans la langue de l’utilisateur actuel. Vous pouvez spécifier la langue à utiliser à l’aide d’une balise de langue, en utilisant les mêmes balises de langue que celles renvoyées par la fonction Language.

Remarques sur le format de la chaîne :

  • La chaîne peut être précédée d’un symbole monétaire de la langue actuelle. Le symbole monétaire est ignoré. Les symboles monétaires d’autres langues ne sont pas ignorés.
  • La chaîne peut inclure un signe de pourcentage (%) à la fin, indiquant qu’il s’agit d’un pourcentage. Le nombre sera divisé par 100 avant d’être renvoyé. Les pourcentages et les symboles monétaires ne peuvent pas être combinés.
  • La chaîne peut être présentée en notation scientifique, avec 12 x 103 exprimé sous la forme « 12e3 ».

Si le nombre n’est pas au format approprié, ces fonctions renverront une erreur.

Pour convertir des valeurs de date et d’heure, utilisez les fonctions DateValue, TimeValue ou DateTimeValue.

Syntaxe

Decimal( String [, LanguageTag ] )
Float( String [, LanguageTag ] )
Value( String [, LanguageTag ] )

  • String : obligatoire. Chaîne à convertir en valeur numérique.
  • LanguageTag : facultatif. Balise de langue dans laquelle analyser la chaîne. Par défaut, la langue de l’utilisateur actuel est utilisée.

Decimal( Untyped )
Float( Untyped )
Value( Sans type )

  • Sans type : obligatoire. Objet sans type qui représente un nombre. Les valeurs acceptables dépendent du fournisseur sans type. Pour JSON, l’objet sans type doit être un nombre JSON, une valeur booléenne ou un texte pouvant être converti en nombre. Gardez à l’esprit que les fuseaux horaires et les formats liés aux paramètres régionaux sont des considérations importantes lors de la communication avec des systèmes externes.

Examples

L’utilisateur qui exécute ces formules se trouve aux États-Unis et a sélectionné l’anglais comme langue. La fonction Language renvoie la valeur « en-US ». L’hôte Power Fx utilise Decimal par défaut.

Value et Decimal

Puisque nous utilisons un hôte qui a Decimal comme valeur par défaut, Value et Decimal renverront les mêmes résultats.

Formula Description Result
Value( "123.456" )
Decimal( "123.456" )
La langue par défaut « en-US » est employée et utilise un point comme séparateur décimal. 123.456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123.456", "es-ES" )
« es-ES » est la balise de langue pour l’espagnol d’Espagne. En espagnol, le point correspond au séparateur des milliers. 123.456 (Decimal)
Value( "123.456" )
Decimal( "123.456" )
La langue par défaut « en-US » est employée et utilise une virgule comme séparateur des milliers. 123.456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123.456", "es-ES" )
« es-ES » est la balise de langue pour l’espagnol d’Espagne. En espagnol, la virgule correspond au séparateur décimal. 123.456 (Decimal)
Value( "12.34%" )
Decimal( "12.34%" )
Le signe de pourcentage à la fin de la chaîne indique qu’il s’agit d’un pourcentage. 0.1234 (Decimal)
Value( "$ 12.34" )
Decimal( "$ 12.34" )
Le symbole monétaire pour la langue actuelle est ignoré. 12.34 (Decimal)
Value( "24e3" )
Decimal( "24e3" )
Notation scientifique pour 24 x 103. 24000 (Decimal)
Value( true )
Decimal( true )
Convertit un booléen en nombre, 0 pour false et 1 pour true 1 Decimal

Float

La fonction Float aura des résultats très proches des résultats ci-dessus. Étant donné que 123.456 ne peut pas être représenté avec précision dans Float, le résultat est une approximation très proche (123.456000000000003069544618484E2) et les calculs d’erreurs d’arrondi de composition pourraient générer un résultat inattendu. Le type résultant sera Float à la place.

Là où les choses divergent, c’est si des nombres plus grands ou plus petits sont utilisés.

Formula Description Result
Float( 1e100 ) Étant donné que le nombre littéral 1e100 est au-delà de la plage d’un Decimal, cela entraîne une erreur avant même d’appeler la fonction Float. error (overflow)
Decimal( 1e100 ) Même problème qu’avec la fonction Float. error (overflow)
Float( "1e100" ) Le nombre dans la chaîne de texte se situe dans la plage de nombres Float. 1e100 Float
Decimal( "1e100" ) Le nombre dans la chaîne de texte est au-delà de la plage de nombres Decimal. error (overflow)
Float( "10000000000.0000000001" ) Le nombre dans la chaîne de texte se situe dans la plage de nombres Float. Cependant, le nombre nécessite plus de précision qu’un Float peut fournir et sera tronqué. 1 (Float)
Decimal( "10000000000.0000000001" ) Le nombre dans la chaîne de texte se situe à la fois dans la plage et la précision d’un nombre Décimal. 10000000000.0000000001 (Decimal)