十进制、浮点和值函数
适用于: 画布应用 Dataverse 公式列 桌面流 模型驱动应用 Power Pages Power Platform CLI
将文本或其他类型的字符串转换为数字。
描述
备注
Power Apps 仅支持 Value 函数,并返回 Float 值。 对 Decimal 和 Float 函数的支持将很快添加。
使用 Decimal、Float 和 Value 函数将包含数字字符的文本字符串转换为数字值。 需要对用户以文本形式输入的数字执行计算时,请使用这些函数。 这些函数也可用于将其他类型转换为数字,如日期/时间和布尔值。
Value 函数将返回您正在使用的 Power Fx 主机的默认数字数据类型,通常为 Decimal,这是大多数情况下的最佳选择。 当您在特定情况下需要特定的数据类型时,可以使用 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 主机使用 Decimal。
值和十进制
由于我们使用的主机将十进制作为默认值,值和十进制将返回相同的结果。
公式 | 描述 | 结果 |
---|---|---|
值(“123.456”) 十进制(“123.456”) |
将使用默认语言“en-US”,该语言使用句点作为小数分隔符。 | 123.456(十进制) |
值(“123.456”,“es-ES”) 十进制(“123.456”,“es-ES”) |
“es-ES”是在西班牙使用的西班牙语的语言标记。 在西班牙,句点为千位分隔符。 | 123456(十进制) |
值(“123,456”) Decimal(“123,456”) |
将使用默认语言“en-US”,该语言使用逗号作为千位分隔符。 | 123456(十进制) |
值(“123,456”,“es-ES”) 十进制(“123,456”,“es-ES”) |
“es-ES”是在西班牙使用的西班牙语的语言标记。 在西班牙,逗号是小数分隔符。 | 123.456(十进制) |
值(“12.34%”) Decimal(“12.34%”)) |
字符串末尾的百分号表示这是一个百分比。 | 0.1234(十进制) |
Value(“$ 12.34”)) 十进制(“$ 12.34”) |
系统会忽略当前语言的货币符号。 | 12.34(十进制) |
值(“24e3”) 十进制(“24e3”) |
24 x 103 所对应的科学记数法。 | 24000(十进制) |
值(true) 十进制(true) |
将布尔值转换为数字,0表示 false,1表示 true | 1 十进制 |
流通股
Float 函数的结果与上述结果非常接近。 由于 123.456 无法用 Float 精确表示,因此结果是非常接近的近似值 (123.45600000000003069544618484 E2),复合舍入误差计算可能会导致意外结果。 结果类型将改为 Float。
不同之处在于使用的数字是大还是小。
公式 | 描述 | 结果 |
---|---|---|
浮子(1e100) | 因为文字数字 1e100 超出了十进制数的范围,所以在调用Float函数之前会出现错误。 |
错误(溢出) |
十进制(1e100) | 与 Float 函数的问题相同。 | 错误(溢出) |
浮点型(“1e100”) | 文本字符串中的数字在浮点数字的范围内。 | 1e100 浮点 |
十进制(“1e100”) | 文本字符串中的数字超出了十进制数字的范围。 | 错误(溢出) |
浮点型(“10000000000.0000000001”)) | 文本字符串中的数字在浮点数字的范围内。 但是,该数字需要的精度超过了浮点所能提供的精度,因此将被截断。 | 1(浮点) |
十进制(“10000000000.0000000001”)) | 文本字符串中的数字在十进制数字的范围和精度内。 | 10000000000.0000000001(十进制) |