Decimal、Float 和 Value 函式
適用於: 畫布應用 Dataverse 公式列 桌面流 模型驅動應用 Power Pages Power Platform CLI
將文字字串或其他類型轉換為數字。
Description
注意
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 主控件預設使用十進位。
值和小數值
由於我們使用的主機預設為十進位,值和十進位將會傳回相同的結果。
公式 | Description | 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。
不同之處在於使用更大或更小的數字。
公式 | Description | 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) |