十进制、浮点和值函数

适用于: 画布应用 Dataverse 公式列 桌面流 模型驱动应用 Power Pages Power Platform CLI

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

描述

备注

Power Apps 仅支持 Value 函数,并返回 Float 值。 对 DecimalFloat 函数的支持将很快添加。

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

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

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

字符串格式的说明:

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

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

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

语法

十进制字符串 [, 语言标签 ])
浮点字符串 [, 语言标签 ])
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(十进制