Decimal、Float、Value 関数

適用先 : キャンバス アプリ Dataverse 数式列 デスクトップ フロー モデル駆動型アプリ Power Platform CLI

文字列を数値に変換します。

Description

注意

Power Apps は Value 関数のみをサポートしており、これは Float 値を返します。 Decimal 関数と Float 関数のサポートは近日中に追加されます。

Decimal 関数、Float 関数、Value 関数を使用して、数値文字を含むテキスト文字列を数値に変換します。 ユーザーがテキストとして入力した数値に対して計算を実行する必要がある場合は、これらの関数を使用します。 これらの関数は、日付/時刻やブール値など、他の型を数値に変換するためにも使用できます。

Value 関数は、使用している Power Fx ホストの既定の数値データ型を返しますが、これは通常 Decimal であり、ほとんどの状況で最適な選択です。 Decimal 関数と Float 関数は、非常に大きな数値の科学計算など、特定のシナリオで特定のデータ型が必要な場合に使用します。 これらのデータ型の詳細については、データ型の数値セクション をご参照ください。

,. の記号は、言語によって解釈が異なります。 既定では、テキストは現在のユーザーの言語に従って解釈されます。 言語タグを使用すると、使用する言語を指定することができます。このとき使用するのは、Language 関数により返される言語タグと同じものです。

文字列の形式に関する注意事項:

  • 文字列の先頭には現在の言語の通貨記号を付けることができます。 この通貨記号は無視されます。 他の言語の通貨記号は無視されません。
  • 文字列の末尾には、百分率であることを示すパーセント記号 (%) を付けることができます。 この場合、数は 100 で割ってから返されます。 パーセンテージ記号と通貨記号を同時に使用することはできません。
  • 文字列では指数表記も使用できます。12 x 103 を表す場合には、"12e3" という表記になります。

数値が適切な形式でない場合、これらの関数はエラーを返します。

日付や時刻の値に変換する場合には、DateValueTimeValue、または DateTimeValue 関数を使用してください。

構文

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

  • String - 必須。 数値に変換する文字列。
  • LanguageTag - オプション。 文字列の解析に使用する言語タグ。 指定しなかった場合には、現在のユーザーの言語が使用されます。

Decimal( Untyped )
Float( Untyped )
( 型指定されていない )

  • Untyped - 必須。 数字を表す 型指定されていないオブジェクト。 許容値は、型指定されていないプロバイダーによって異なります。 JSON の場合、型指定されていないオブジェクトは、数値に変換できる JSON 数値、ブール値、またはテキストになります。 外部システムと通信するときは、ロケール関連の形式が重要な考慮事項であることに注意してください。

使用例

これらの数式を実行しているユーザーは米国内のユーザーで、言語として英語を選択しています。 Language 関数は、「en-US」を返します。 Power Fx は既定で、Decimal を使用します。

値と 10 進

Decimal を既定とするホストを使用しているので、ValueDecimal は同じ結果を返します。

Description Result
Value( "123.456" )
Decimal( "123.456" )
ピリオドが小数点を表す記号として使用される既定の言語「en-US」が使用されます。 123.456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123.456", "es-ES" )
「es-ES」は、スペインのスペイン語を表す言語タグです。 スペインでは、ピリオドが桁区切り記号として使われています。 123456 (Decimal)
Value( "123,456" )
Decimal( "123,456" )
ピリオドが小数点を表す記号として使用される既定の言語「en-US」が使用されます。 123456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123,456", "es-ES" )
「es-ES」は、スペインのスペイン語を表す言語タグです。 スペインでは、コンマが小数点を表す記号として使われています。 123.456 (Decimal)
Value( "12.34%" )
Decimal( "12.34%" )
文字列の末尾に、この数字が百分率であることを示すパーセント記号が付いています。 0.1234 (Decimal)
Value( "$ 12.34" )
Decimal( "$ 12.34" )
現在の言語の通貨記号は無視されます。 12.34 (Decimal)
Value( "24e3" )
Decimal( "24e3" )
24 × 103 の指数表記。 24000 (Decimal)
Value( true )
Decimal( true )
論理値を数値に変換します、 0 は false、1 は true 1 Decimal

浮動

Float 関数は上記とほぼ同じ結果になります。 123.456 は Float では正確に表現できないため、結果は非常に近い近似値 (123.456000000000003069544618484E2) となり、丸め誤差の計算が重なると予期せぬ結果になる可能性があります。 結果の型は Float になります。

物事が分かれるのは、より大きな数字が使われる場合と小さな数字が使われる場合です。

Description Result
Float( 1e100 ) リテラル数値 1e100Decimal の範囲を超えているため、Float 関数を呼び出す前にエラーとなります。 error (overflow)
Decimal( 1e100 ) Float 関数と同じ問題です。 error (overflow)
Float( "1e100" ) テキスト文字列の数値は、Float 数の範囲内です。 1e100 Float
Decimal( "1e100" ) テキスト文字列の数値は、Decimal 数の範囲を超えています。 error (overflow)
Float( "10000000000.0000000001" ) テキスト文字列の数値は、Float 数の範囲内です。 しかし、この数値は Float が提供できる以上の精度を必要とするため、切り捨てられます。 1 (Float)
Decimal( "10000000000.0000000001" ) テキスト文字列の数値は、Decimal 数の範囲と精度の両方に入っています。 10000000000.0000000001 (Decimal)