Funktionerna Decimal, Float och Value

Gäller to: Arbetsyteappar Dataverse formula columns Datorflöden Modellbaserade appar Power Platform CLI

Konverterar en textsträng eller andra typer till en siffra.

Beskrivning

Kommentar

Power Apps stöder endast funktionen värde och returnerar ett flyttal. Snart läggs stöd för funktionerna Decimal och Float.

Använd funktionen Decimal, Float och Value för att konvertera en textsträng som innehåller siffertecken till ett numeriskt värde. Använd den här funktionen när du behöver utföra beräkningar på tal som angivits som text av en användare. Funktionerna kan även användas för att konvertera andra typer till ett tal, till exempel datum/tid och booleska.

Funktionen Value returnerar standarddatatypen för den Power Fx-värd som du använder, vilket vanligtvis är Decimal och det bästa alternativet i de flesta situationer. Använd funktionerna Decimal och Float när du behöver en specifik datatyp för ett visst scenario, till exempel en vetenskaplig beräkning med ett mycket stort antal. Mer information om hur du arbetar med dessa datatyper finns i avsnittet Tal för datatyper.

Olika språk tolkar , och . olika. Som standard tolkas texten på den aktuella användarens språk. Du kan ange vilket språk som ska användas med en språktagg, med hjälp av samma språktaggar som returneras av funktionen Language.

Anmärkningar om strängformatet:

  • Strängen kan föregås av valutasymbolen för det aktuella språket. Valutasymbolen ignoreras. Valutasymboler för andra språk ignoreras inte.
  • Strängen kan innehålla ett procenttecken (%) i slutet, vilket anger att det är en procentandel. Antalet divideras med 100 innan det returneras. Procenttal och valutasymboler kan inte blandas.
  • Strängen kan vara i matematisk notation, där 12 x 103 uttrycks som "12e3".

Om numret inte har rätt format returneras ett fel med de här funktionerna.

Konvertera datum- och tidsvärden med funktionerna DateValue, TimeValue eller DateTimeValue.

Syntax

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

  • String – Krävs. Sträng som ska konverteras till ett numeriskt värde.
  • LanguageTag – Valfritt. Språktaggen som strängen ska parsas med. Om det inte är angivet används den aktuella användarens språk.

Decimal( Untyped )
Float( Untyped )
Value( Utan typ )

  • Utan typ – Obligatoriskt. Objekt utan angiven typ som representerar en siffra. Acceptabla värden är beroende av leverantören utan angiven typ. För JSON förväntas det typlösa objektet vara ett JSON-nummer, boolesk eller text som kan konverteras till en siffra. Tänk på att språkrelaterade format är viktiga saker att tänka på när du kommunicerar med externa system.

Exempel

Den användare som kör dessa formler finns i USA och har valt engelska som sitt språk. Funktionen Language returnerar "en-US". Som standard använder Power Fx-värden Decimal.

Värde och decimal

Eftersom vi använder en värd som har Decimal som standard returnerar Value och Decimal samma resultat.

Formel Beskrivning Resultat
Value( "123.456" )
Decimal( "123.456" )
Standardspråket för "en-US" kommer att användas, vilket innebär att en punkt används som decimaltecken. 123.456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123.456", "es-ES" )
"es-ES" är språktaggen för spanska i Spanien. I Spanien används punkten som tusentalsavgränsare. 123456 (Decimal)
Value( "123,456" )
Decimal( "123,456" )
Standardspråket för "en-US" kommer att användas, vilket innebär att ett kommatecken används som tusentalsavgränsare. 123456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123,456", "es-ES" )
"es-ES" är språktaggen för spanska i Spanien. I Spanien används kommatecknet som decimaltecken. 123.456 (Decimal)
Value( "12.34%" )
Decimal( "12.34%" )
Procenttecknet i slutet av strängen visar att detta är en procentandel. 0.1234 (Decimal)
Value( "$ 12.34" )
Decimal( "$ 12.34" )
Valutasymbolen för det aktuella språket ignoreras. 12.34 (Decimal)
Value( "24e3" )
Decimal( "24e3" )
Matematisk notation för 24 x 103. 24000 (Decimal)
Value( true )
Decimal( true )
Konverterar en boolesk till ett tal, 0 för falskt och 1 för sant 1 Decimal

Float

Funktionen Float kommer att ha mycket nära samma resultat som ovan. Eftersom 123.456 inte kan representeras exakt i Float, blir resultatet ett resultat som är mycket nära (123.456000000000003069544618484E2) och sammansatta avrundningsfelsberäkningar kan resultera i ett oväntat resultat. Den resulterande typen blir Flyttal stället.

Där saker kan vara om större eller mindre tal används.

Formel Beskrivning Resultat
Float( 1e100 ) Eftersom literalnumret 1e100 ligger utanför intervallet Decimal uppstår ett fel innan funktionen Float anropas. fel (överflöd)
Decimal( 1e100 ) Samma problem som med funktionen Float. fel (överflöd)
Float( "1e100" ) Antalet i textsträngen ligger inom intervallet Float. 1e100 Float
Decimal( "1e100" ) Antalet i textsträngen ligger bortom intervallet Decimal. fel (överflöd)
Float( "10000000000.0000000001" ) Antalet i textsträngen ligger inom intervallet Float. Antalet kräver mer precision än vad ett flyttal kan ge och trunkeras. 1 (Flyttal)
Decimal( "10000000000.0000000001" ) Numret i textsträngen ligger både inom intervallet och precision av ett Decimal-nummer. 10000000000.0000000001 (Decimal)