Funkce Decimal, Float a Value

Platí pro: aplikace plátna sloupce vzorců Dataverse desktopové toky modelem řízené aplikace Power Platform CLI

Převede řetězec textu nebo jiné typy na číslo.

Description

Poznámka:

Power Apps pouze podporuje funkci Value a vrátí hodnotu s plovoucí desetinnou čárkou. Podpora pro funkce Decimal a Float bude brzy přidána.

Funkce Decimal, Float a Value používejte k převodu textového řetězce, který obsahuje číselné znaky, na číselnou hodnotu. Tyto funkce použijte, když potřebujete provést výpočty s čísly, která uživatel zadal jako text. Tyto funkce lze také použít k převodu jiných typů na číslo, jako je datum/čas a logickou hodnotu.

Funkce Value vrátí výchozí číselný datový typ pro hostitele Power Fx, který používáte, což je obvykle Desetinné číslo a nejlepší volbou pro většinu situací. Funkce Decimal a Float použijte, když potřebujete konkrétní typ dat pro konkrétní scénář, jako je například vědecký výpočet s velmi velkým číslem. Další informace o práci s těmito datovými typy viz část Čísla v části Typy dat.

Znaky , a . se v různých jazycích interpretují odlišně. Ve výchozím nastavení se text interpretuje v jazyce aktuálního uživatele. Jazyk, který se má použít, můžete určit pomocí značky jazyka s využitím stejných značek jazyků, které vrací funkce Language.

Poznámky k formátu řetězce:

  • Před řetězcem může být symbol měny pro aktuální jazyk. Symbol měny se ignoruje. Symboly měny pro jiné jazyky se neignorují.
  • Řetězec může na konci obsahovat znak procenta (%) udávající, že jde o procenta. Než bude číslo vráceno, vydělí se číslem 100. Procenta a symboly měn není možné směšovat.
  • Řetězec může být zapsaný exponenciální notací, kdy se 12 x 103 vyjadřuje jako „12e3“.

Pokud číslo není ve správném formátu, tyto funkce vrátí chybu.

K převodu hodnot data a času použijte funkce DateValue, TimeValue nebo DateTimeValue.

Syntaxe

Decimal( Řetězec [; ZnačkaJazyka ] )
Float( Řetězec [; ZnačkaJazyka ] )
Value( Řetězec [; ZnačkaJazyka ] )

  • Řetězec - povinné. Řetězec, který se má převést na číselnou hodnotu.
  • ZnačkaJazyka – volitelná. Značka jazyka, ve kterém se má řetězec analyzovat. Pokud není uvedený, použije se jazyk aktuálního uživatele.

Decimal( Netypováno )
Float( Netypováno )
Value( Untyped )

  • Untyped – povinné. Netypovaný objekt, který představuje číslo. Přijatelné hodnoty závisí na poskytovateli netypovaného objektu. Pro JSON se očekává, že netypovaný objekt bude číslo JSON, logická hodnota nebo text, který lze převést na číslo. Mějte na paměti, že formáty související s národním prostředím jsou důležitými faktory při komunikaci s externími systémy.

Příklady

Uživatel, který spouští tyto vzorce, se nachází ve Spojených státech a vybral si jako svůj jazyk angličtinu. Funkce Language vrátí en-US. Ve výchozím nastavení používá hostitel Power Fx desetinné číslo.

Value a Decimal

Protože používáme hostitele, který má ve výchozím nastavení desetinné číslo funkce Value a Decimal vrátí stejné výsledky.

Vzorec Description Result
Hodnota( "123.456" )
Decimal( "123.456" )
Použije se výchozí jazyk „en US“, který používá tečku jako oddělovač desetinných míst. 123.456 (Decimal)
Value( "123.456"; "es-ES" )
Decimal( "123.456", "es-ES" )
„es-ES“ je značka jazyka pro španělštinu ve Španělsku. Ve Španělsku se tečkou oddělují tisíce. 123456 (Decimal)
Hodnota( "123.456" )
Decimal( "123,456" )
Použije se výchozí jazyk „en US“, který používá čárku jako oddělovač tisíců. 123456 (Decimal)
Value( "123.456"; "es-ES" )
Decimal( "123,456", "es-ES" )
„es-ES“ je značka jazyka pro španělštinu ve Španělsku. Ve Španělsku se čárkou oddělují desetinná místa. 123.456 (Decimal)
Hodnota( "12.34%" )
Decimal( "12.34%" )
Znak procenta na konci řetězce označuje, že se jedná o procenta. 0.1234 (Decimal)
Hodnota( "$ 12.34" )
Decimal( "$ 12.34" )
Symbol měny pro aktuální jazyk se ignoruje. 12.34 (Decimal)
Value( "24e3" )
Decimal( "24e3" )
Exponenciální notace pro 24 x 103. 24000 (Decimal)
Value( true )
Decimal( true )
Převede logickou hodnotu na číslo, 0 pro false a 1 pro true 1 Decimal

Float

Funkce Float bude mít velmi blízko ke stejným výsledkům jako výše. Protože 123,456 nemůže být přesně reprezentováno v čísle s plovoucí desetinnou čárkou, výsledkem je aproximace, která je velmi blízká (123,456000000000003069544618484E2) a výpočty chyb zaokrouhlení mohou vést k neočekávanému výsledku. Výsledný typ bude místo toho číslo s plovoucí desetinnou čárkou.

Tam, kde se věci liší, je použití větších nebo menších čísel.

Vzorec Description Result
Float (1e100) Vzhledem k tomu, že číslo 1e100 je mimo rozsah a desetinných čísel, vede to k chybě ještě před voláním funkce Float. error (overflow)
Decimal( 1e100 ) Stejný problém jako u funkce Float. error (overflow)
Float( "1e100" ) Číslo v textovém řetězci je v rozsahu čísel s plovoucí desetinnou čárkou. 1e100 Float
Decimal( "1e100" ) Číslo v textovém řetězci je mimo rozsah desetinných čísel. error (overflow)
Float( "10000000000.0000000001" ) Číslo v textovém řetězci je v rozsahu čísel s plovoucí desetinnou čárkou. Číslo však vyžaduje větší přesnost, než může poskytnout číslo s desetinnou čárkou, a bude zkráceno. 1 (Float)
Decimal( "10000000000.0000000001" ) Číslo v textovém řetězci je v rozsahu i přesnosti desetinných čísel. 10000000000.0000000001 (Decimal)