| Functions | 适用于 |
|---|---|
| Decimal Float |
|
| Value |
|
将文本或其他类型的字符串转换为数字。
描述
备注
Power Apps 仅支持该 Value 函数,并返回一个 Float 值。 不久将添加对 Decimal 和 Float 函数的支持。
Decimal使用和FloatValue函数将包含数字字符的文本字符串转换为数值。 需要对用户以文本形式输入的数字执行计算时,请使用这些函数。 这些函数也可用于将其他类型转换为数字,如日期/时间和布尔值。
该 Value 函数将返回你正在使用的 Power Fx 主机的默认数值数据类型,这通常是 Decimal 大多数情况下的最佳选择。 Decimal当需要特定方案的特定数据类型(例如具有非常大的科学计算)时,请使用和Float函数。 有关使用这些数据类型的更多详细信息,请参阅数据类型的数字部分。
不同的语言对 , 和 . 的解释各不相同。 默认情况下,文本使用当前用户的语言进行解释。 可以通过语言标记指定要使用的语言,使用的语言标记与 Language 函数返回的语言标记相同。
字符串格式的说明:
- 字符串可能以当前语言所对应的货币符号为前缀。 系统会忽略该货币符号, 但不忽略其他语言的货币符号。
- 字符串可能在末尾包含百分号 (%),表示这是百分比。 该数字在返回前将被除以 100。 不能混用百分比和货币符号。
- 字符串可能采用科学记数法,将 12 x 103 表示为“12e3”。
如果数字格式不正确,这些函数将返回错误。
若要转换日期和时间值,请使用 DateValue、TimeValue 或 DateTimeValue 函数。
语法
Decimal( 字符串 [, LanguageTag ] )
Float( 字符串 [, LanguageTag ] )
Value( 字符串 [, LanguageTag ] )
- string - 必需。 要转换为数字值的字符串。
- LanguageTag - 可选。 一种语言标记,可以通过该标记来分析语言。 在未指定该标记的情况下,将使用当前用户的语言。
Decimal( 动态 )
Float( 动态 )
Value( 动态 )
- 动态 - 必需。 表示数字的动态值。 可接受值取决于非类型化提供程序。 对于 JSON,动态值应为可以转换为数字的 JSON 数字、布尔值或文本。 请记住,在与外部系统通信时,与区域设置相关的格式是重要的注意事项。
示例
运行这些公式的用户位于美国,且已选择英语作为其语言。 Language 函数返回的是“en-US”。 默认情况下,Power Fx 主机使用 Decimal 。
Value 和 Decimal
由于我们使用的是具有 Decimal 默认值的主机, Value 因此 Decimal 将返回相同的结果。
| 公式 | 描述 | 结果 |
|---|---|---|
|
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(true) Decimal(true) |
将布尔值转换为数字,0表示 false,1表示 true | 1 Decimal |
Float
该 Float 函数将具有与上述结果非常接近的结果。 由于无法精确表示 Float123.456,因此结果是非常接近的近似值(123.456000000000003069544618484E2)和复合舍入错误计算可能会导致意外的结果。 生成的类型将 Float 改为。
不同之处在于使用的数字是大还是小。
| 公式 | 描述 | 结果 |
|---|---|---|
| Float(1e100) | 由于文本数字 1e100 超出了范围 Decimal,因此在调用 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) |