Decimal、Float 和 Value 函式

適用於: 畫布應用 Dataverse 公式列 桌面流 模型驅動應用 Power Pages Power Platform CLI

將文字字串或其他類型轉換為數字。

名描述

注意

Power Apps 僅支援 Value 函式,它會傳回浮點數值。 很快就會加入對 Decimal 和 Float 函式的支援。

使用 Decimal、Float 和 Value 函式將包含數字字元的文字字串轉換為數值。 當您需要對使用者以文字形式輸入的數字計算時,請使用這些函式。 這些函式也可用於將其他類型轉換為數字,例如日期/時間和布林值。

Value 函式將傳回您正在使用的 Power Fx 主機的預設數字資料類型,通常是十進位,這在是大多數情況下的最佳選擇。 當您需要針對特定情境 (例如具有非常大數字的科學計算) 的特定資料類型時,請使用 Decimal 和 Float 函式。 有關使用這些資料類型的更多詳細資訊,請參閱資料類型的數字部分。

不同語言對 , 和 . 有不同的解釋。 預設文字是以目前使用者的語言解讀。 您可以使用 Language 函式傳回的相同語言標記指明要對語言標記使用的語言。

字串格式的注意事項︰

  • 此字串前面可能會加上目前語言的貨幣符號。 此貨幣符號會被忽略。 不會忽略其他語言的貨幣符號。
  • 此字串結尾可能會加上百分比符號 (%),表示這是百分比。 該數字會先除以 100 再傳回。 百分比和貨幣符號不可混用。
  • 字串可能會使用科學記號標記法,將 12 x 103 表示為 "12e3"。

如果數字的格式不正確,這些函式將傳回錯誤。

若要轉換日期和時間值,請使用 DateValue、TimeValue 或 DateTimeValue 函式。

語法

十進位( 字串串 [, 語言標籤 ])
浮點( 字串串 [, 語言標籤 ])
值( String [, LanguageTag ])

  • string - 必需。 要轉換為數值的字串。
  • LanguageTag - 可選。 用來剖析字串的語言標記。 若未指定,系統會使用目前使用者所用的語言。

Decimal( 未鍵入 )
浮點型( Untyped )
值( 無類型 )

  • Untyped - 必需。 表示數字的非類型化物件。 可接受的值取決於非類型化的提供者。 如果是 JSON,則非類型化物件應為 JSON 數字、布林值,或是可轉換為數字的文字。 請記住,與外部系統通訊時,需要著重考慮地區相關的格式。

範例

執行這些公式的使用者位於美國,並已選取英文做為語言。 Language 函式傳回 "en-US"。 Power Fx 主控件預設使用十進位。

值和小數值

由於我們使用的主機預設為十進位,值和十進位將會傳回相同的結果。

公式 名描述 Result
值(“123.456”)
十進位(“123.456”)
將使用預設語言 "en-US",其使用句點作為小數分隔符號。 123.456 (Decimal)
值(“123.456”,“es-ES”)
十進制(“123.456”,“es-ES”)
"es-ES" 是西班牙的西班牙文語言標記。 在西班牙,句點是千位分隔符號。 123456 (Decimal)
值(“123.456”)
Decimal(“123,456”)
將使用預設語言 "en-US",其使用逗號作為千位分隔符號。 123456 (Decimal)
值(“123,456”,“es-ES”)
十進制(“123,456”,“es-ES”)
"es-ES" 是西班牙的西班牙文語言標記。 在西班牙,逗號是小數分隔符號。 123.456 (Decimal)
值(“12.34%”)
Decimal (“12.34%”))
字串結尾的百分比符號表示這是百分比。 0.1234 (Decimal)
Value (“$ 12.34”))
十進制(“$ 12.34”)
目前語言的貨幣符號會被忽略。 12.34 (Decimal)
值(“24e3”)
十進位(“24e3”)
24 x 103 的科學記號標記法。 24000 (Decimal)
值(true)
十進位(true)
將布林值轉換為數字,0 表示 False ,1 表示 True 1 Decimal

自由流通股

Float 函式的結果與上面的結果非常接近。 由於 123.456 無法以 Float 精確表示,因此結果是非常接近的近似值 (123.456000000000003069544618484E2),複合捨入誤差計算可能會導致意外結果。 結果類型將為 Float。

不同之處在於使用更大或更小的數字。

公式 名描述 Result
浮子(1e100) 由於常值數字 1e100 超出了 Decimal 的範圍,因此在呼叫 Float 函式之前會導致錯誤。 錯誤(溢出)
十進位(1e100) 與 Float 函式相同的問題。 錯誤(溢出)
浮點型(“1e100”) 文字字串中的數字在 Float 數字範圍內。 1e100 Float
十進位(“1e100”) 文字字串中的數字在超出了 Decimal 數字的範圍。 錯誤(溢出)
浮點型 (“10000000000.0000000001”)) 文字字串中的數字在 Float 數字範圍內。 但是,該數字所需的精確度超出了 Float 所能提供的精確度,其將會被截斷。 1 (Float)
十進制 (“10000000000.0000000001”)) 文字字串中的數字在 Decimal 數字的範圍和精確度內。 10000000000.0000000001 (Decimal)