IBM FileNet P8, V5.2.1            

数字函数

本节包含适用于浮点值或整数值的函数的简要描述。

表 1. 适用于浮点值或整数值的函数表
函数 用途
abs 将返回数字函数的绝对值。
bitor、bitand 和 bitnot 提供对位的布尔值处理。
convert 将数字转换为另一种数据类型,或者将另一种数据类型转换为数字。
err_encode 将由三部分组成的 FileNet® P8 错误元组转换为只有一个部分的整数。
int 截断小数点后面的所有内容,返回数字表达式的整数值。
max 从表达式列表中返回任何受支持数据类型的最大值。
min 从表达式列表中返回任何受支持数据类型的最小值。
mod 将返回进行除法运算之后得到的余数(模数)。
numbertostring 使用所指定的掩码将数字表达式转换为字符串表达式。
random 返回所指定范围内的一个随机整数。
sizeof 返回数组的大小。

abs

此函数将返回整型表达式或浮点型表达式的绝对值。使用以下语法:
abs (num_expr)
其中 num_exp 是一个表达式,其结果为 integer 或 float 类型。例如:
abs (SalePrice - PurchasePrice)

bitand、bitor 和 bitnot

这些函数提供对位的布尔值处理;使用它们来执行许多任务,例如,屏蔽设置和抽取位。其中每个函数最多可以同时对 32 项执行布尔运算。

如果您熟悉“C”编程语言,那么 bitand、bitor 和 bitnot 分别类似于逻辑 and (&)、逻辑 or (|) 和逻辑 not (~)。如果您不熟悉“C”编程语言,那么将数目考虑为二进制值(例如,123 将为 1111011)。

这些函数将 32 位的整数(即,从 0 到 42946967295 范围内)作为输入,返回同一范围内的整数作为输出。使用以下语法:
bitand (expr1, expr2)

bitor (expr1, expr2)

bitnot (expr)
其中 expr1 和 expr2 是 32 位整数。
有关每个函数的特定信息和示例,请从以下列表中选择一个主题。

bitand

bitand 函数对两个整数的相应位执行逻辑“与”(and) 操作。这是逐位进行比较,其结果将输出到新整数中。比较遵循下列规则:
  • 如果这两个整数在同一位置都包含 1,那么最终获得的整数在该位置也包含 1。
  • 如果这两个整数在同一位置都包含 0,那么最终获得的整数在该位置也包含 0。
  • 如果一个整数在某个位置包含 1,而另一个整数在同一位置包含 0,那么最终获得的整数在该位置将包含 0。
例如,可以将 bitand (123, 240) 视为如下所示。
bitand

     (00000000000000000000000001111011,
         

      00000000000000000000000011110000)
          

  其结果为:
      00000000000000000000000001110000

bitor

bitor 函数对两个整数的相应位执行逻辑“或”(or) 操作。会将此逐位比较的结果输出到新整数中。比较遵循下列规则:
  • 如果任一整数在同一位置包含 1,那么最终获得的整数在该位置也包含 1。
  • 如果这两个整数在同一位置都包含 0,那么最终获得的整数在该位置也包含 0。
例如,可以将 bitor (123, 240) 视为如下所示。
bitor
     (00000000000000000000000001111011,
         
      00000000000000000000000011110000)
          
  其结果为:

      00000000000000000000000011111011

bitnot

bitnot 函数将对整数执行逻辑“否”(not) 操作;会将此逐位分析的结果输出为新的整数。对于每个位置,新整数将包含相反的位值含义,例如,如果输入整数在给定位置包含 1,那么新整数在同一位置将包含 0。

例如,可以将 bitnot (123) 视为如下所示。
bitnot
              (00000000000000000000000001111011
  其结果为:
               11111111111111111111111110000100

int

此函数通过截断小数点后面的所有内容来计算浮点型表达式的整数值。例如,浮点值 6.2 和 6.8 都将转换为整数值 6。数字的符号不变。

使用以下语法:
int (num_expr)
其中 num_expr 是一个表达式,其结果为 float 类型。例如:
int (365 / 7)

mod

此函数将返回进行除法运算之后得到的余数(模数)。请注意,如果您试图将一个值除以 0,那么将发生运行时错误。

使用以下语法:
mod (num1, num2)
其中 num1 和 num2 是 float 或 integer 类型的变量,并且可以包含负值。
在以下示例中,此函数将返回 NumberOfDays 除以 7 之后所得到的余数。
mod (NumberOfDays, 7)
请注意,num2 的符号将确定 mod 函数输出的符号(当输出不为 0 时):
If num2 > 0,

				0 <= mod (num1, num2) < num2

If num2 < 0,

				num2 < mod (num1, num2) <= 0

random

某些应用程序需要通过一种方法来生成随机整数,也许作为一种执行随机采样的方法。此函数将返回所指定范围内的一个随机整数。它需要将一个整数作为参数来确定范围。

使用以下语法:
random (num)
其中 num 是 2 到 32768 范围内的整数(包括 2 和 32768 在内)。范围为 0 到 num - 1。在以上示例中,如果 num 为 23,那么随机整数将在 0 到 22 之间。

err_encode

此函数会将由三部分组成的 FileNet P8 错误元组转换为整数值,可以将此值与调用 WorkFlo Application Libraries (WAL) 入口点所返回的结果代码进行比较。在正常处理期间发生异常情况时(例如,在进行简单数据处理时遇到文件末尾)或者发生错误时,WAL 将返回结果代码。

err_encode 的主要用途是对“调用 WAL”这一操作所返回的结果中的工作项执行基本的后续处理。通常,这样一项操作之后接着是 Branch 系统指令;当执行 Branch 时,工作项将遵循由前一操作所返回的结果代码确定的处理路径。例如,在 Branch 定义中使用 err_code 函数来指出如果 <return code> = err_encode (80, 0, 2),那么工作项将遵循一条处理路径;如果 <return code> = err_encode (80, 0, 5),那么它将遵循另一条处理路径。

使用以下语法:
err_encode (mod_num, func_num, err_num)
其中:
表 2. err_encode 函数的参数和描述
参数 描述
mod_num 结果代码的第一部分。它是一个整型表达式(在 0 - 255 范围内),指出哪个服务、库或应用程序是错误源。
func_num 结果代码的第二部分。它是一个整型表达式(在 0 - 255 范围内),指出错误来源于哪个函数或模块,或者指出错误所属的类别。
err_num 结果代码的第三部分。它是一个整型表达式(在 0 - 65535 范围内),指出错误编号。


最近一次更新时间: 2015 年 10 月
bpfe010.htm

© Copyright IBM Corporation 2015.