次の方法で共有


Decimal、 Float、および Value 関数

Functions 対象
Decimal
Float
Power Platform CLI Dataverse 関数 Dataverse 数式列 Copilot Studio Desktop フロー
Value Power Platform CLI Dataverse 関数 Power Pages モデル駆動型アプリ Dataverse 数式列、Copilot Studio デスクトップ フローキャンバス アプリ

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

Description

注意

Power Apps では、 Value 関数のみがサポートされ、 Float 値が返されます。 Decimal関数とFloat関数のサポートは近日中に追加される予定です。

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

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

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

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

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

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

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

構文

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

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

Decimal( 動的 )
Float( 動的 )
Value( 動的 )

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

使用例

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

Value および Decimal

既定として 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

Float関数は、上記と同じ結果に非常に近くなります。 Floatでは 123.456 を正確に表すことができないため、結果は非常に近い近似値 (123.4560000000000030695446184844E2) になり、丸め誤差計算を複合すると予期しない結果が発生する可能性があります。 代わりに、結果の型が Float されます。

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

Description Result
Float( 1e100 ) リテラル番号 1e100Decimalの範囲外であるため、 Float 関数を呼び出す前にエラーが発生します。 エラー(オーバーフロー)
Decimal( 1e100 ) Float関数と同じ問題。 エラー(オーバーフロー)
Float( "1e100" ) 文字列内の数値は、 Float 数値の範囲内です。 1e100 Float
Decimal( "1e100" ) テキスト文字列内の数値が、 Decimal 数値の範囲を超えています。 エラー(オーバーフロー)
Float( "10000000000.0000000001" ) 文字列内の数値は、 Float 数値の範囲内です。 ただし、この数値には、 Float が提供できる精度よりも高い精度が必要であり、切り捨てられます。 1 (Float)
Decimal( "10000000000.0000000001" ) テキスト文字列内の数値は、 Decimal 数値の範囲と有効桁数の両方の範囲内にあります。 10000000000.0000000001 (Decimal)