| Functions | 適用對象 |
|---|---|
| Decimal Float |
|
| Value |
|
將文字字串或其他類型轉換為數字。
Description
注意
Power Apps 僅支援函 Value 式,並傳回值 Float 。 很快就會新增對 和 DecimalFloat 函數的支援。
使用 Decimal、 Float和 Value 函數,將包含數字字元的文字字串轉換為數值。 當您需要對使用者以文字形式輸入的數字計算時,請使用這些函式。 這些函式也可用於將其他類型轉換為數字,例如日期/時間和布林值。
此 Value 函式會傳回您正在使用的 Power Fx 主機的預設數值資料類型,這通常是 Decimal 大部分情況下的最佳選擇。 當您需要特定案例的特定資料類型時,請使用 Decimal and Float 函數,例如具有非常大數字的科學計算。 有關使用這些資料類型的更多詳細資訊,請參閱資料類型的數字部分。
不同語言對 , 和 . 有不同的解釋。 預設文字是以目前使用者的語言解讀。 您可以使用 Language 函式傳回的相同語言標記指明要對語言標記使用的語言。
字串格式的注意事項︰
- 此字串前面可能會加上目前語言的貨幣符號。 此貨幣符號會被忽略。 不會忽略其他語言的貨幣符號。
- 此字串結尾可能會加上百分比符號 (%),表示這是百分比。 該數字會先除以 100 再傳回。 百分比和貨幣符號不可混用。
- 字串可能會使用科學記號標記法,將 12 x 103 表示為 "12e3"。
如果數字的格式不正確,這些函式將傳回錯誤。
若要轉換日期和時間值,請使用 DateValue、TimeValue 或 DateTimeValue 函式。
語法
Decimal( 字串 [, 語言標籤 ] )
Float( 字串 [, 語言標籤 ] )
Value( 字串 [, 語言標籤 ] )
- string - 必需。 要轉換為數值的字串。
- 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 x 103 的科學記號標記法。 | 24000 (Decimal) |
|
Value( 真實 ) Decimal( 真實 ) |
將布林值轉換為數字,0 表示 False ,1 表示 True | 1 Decimal |
Float
該 Float 函數將具有與上述非常接近的結果。 由於 123.456 無法精確表示 Float,因此結果是非常接近的近似值 (123.45600000000000003069544618484E2),複合捨入誤差計算可能會導致非預期的結果。 結果類型將改為。Float
不同之處在於使用更大或更小的數字。
| 公式 | Description | Result |
|---|---|---|
| Float( 1e100 ) | 因為常值數字 1e100 超出了 的 Decimal範圍,這會導致在呼叫 Float 函數之前發生錯誤。 |
錯誤(溢出) |
| Decimal( 1e100 ) | 與函數相同的 Float 問題。 | 錯誤(溢出) |
| Float( “1e100” ) | 文字字串中的數字在數字範圍內 Float 。 | 1e100 Float |
| Decimal( “1e100” ) | 文字字串中的數字超出了數字範圍 Decimal 。 | 錯誤(溢出) |
| Float( "10000000000.0000000001" ) | 文字字串中的數字在數字範圍內 Float 。 但是,該數字需要比 a Float 可以提供的更高的精度,並且會被截斷。 | 1 (Float) |
| Decimal( "10000000000.0000000001" ) | 文字字串中的數字在數字的 Decimal 範圍和精確度內。 | 100000000000.0000000001 (Decimal) |