Decimal、 Float和 Value 函数

Functions 适用于
Decimal
Float
Copilot Studio Desktop 流 Dataverse 公式列 Power Platform CLI Dataverse 函数
Value 画布应用 Copilot Studio Desktop 流 Dataverse 公式列 模型驱动应用 Power Platform CLI Dataverse 函数 Power Pages

将文本或其他类型的字符串转换为数字。

描述

备注

Power Apps 仅支持该 Value 函数,并返回一个 Float 值。 不久将添加对 DecimalFloat 函数的支持。

Decimal使用和FloatValue函数将包含数字字符的文本字符串转换为数值。 需要对用户以文本形式输入的数字执行计算时,请使用这些函数。 这些函数也可用于将其他类型转换为数字,如日期/时间和布尔值。

Value 函数将返回你正在使用的 Power Fx 主机的默认数值数据类型,这通常是 Decimal 大多数情况下的最佳选择。 Decimal当需要特定方案的特定数据类型(例如具有非常大的科学计算)时,请使用和Float函数。 有关使用这些数据类型的更多详细信息,请参阅数据类型的数字部分

不同的语言对 ,. 的解释各不相同。 默认情况下,文本使用当前用户的语言进行解释。 可以通过语言标记指定要使用的语言,使用的语言标记与 Language 函数返回的语言标记相同。

字符串格式的说明:

  • 字符串可能以当前语言所对应的货币符号为前缀。 系统会忽略该货币符号, 但不忽略其他语言的货币符号。
  • 字符串可能在末尾包含百分号 (%),表示这是百分比。 该数字在返回前将被除以 100。 不能混用百分比和货币符号。
  • 字符串可能采用科学记数法,将 12 x 103 表示为“12e3”。

如果数字格式不正确,这些函数将返回错误。

若要转换日期和时间值,请使用 DateValueTimeValueDateTimeValue 函数。

语法

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