IBM Books

参考


数学函数

这些函数可以让您完成数学运算。

NLS 针对数学函数的考虑: Net.Data 根据运行 Net.Data 的 Web 服务器上指定的区域设置在数值中显示小数点。例如,如果 Web 服务器上指定小数点为一个逗号 (,),则 Net.Data 使用逗号将十进制数据格式化。Net.Data 使用以下设置确定哪个字符用于指定 小数点:

对于 OS/390、Windows NT、OS/2 和 UNIX 操作系统:
Web 服务器执行时采用的 LOCALE

对于 OS/400 操作系统:

对于数学计算,有下列函数可用:

DTW_ADD


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

将两个数值相加。

格式

@DTW_ADD(number1, number2, precision, result)

@DTW_ADD(number1, number2, result)

@DTW_rADD(number1, number2, precision)

@DTW_rADD(number1, number2)

参数

表 57. DTW_ADD 参数
数据类型 参数 用法 说明
浮点数 number1 IN 一个表示数值的变量或文字串。
浮点数 number2 IN 一个表示数值的变量或文字串。
整数 precision IN 一个表示正整数的变量或文字串,此整数指定了 结果的精确度。缺省值是 9。
浮点数 result OUT 包含 number1number2 之和的变量。

返回码

表 58. DTW_ADD 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1002 输入参数中包含一个由空终结字符组成的字符串值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1006 传递给函数调用的参数必须是一个输出参数,但实际上传递了一个文字串。
4000 参数中包含无效的全数值。
4001 参数中包含无效的数值。
4002 算术运算的结果是一个指数,但其值超过了所支持的范围 (-999,999,999 至 +999,999,999)。

例 1

@DTW_ADD(NUM1, NUM2, "2", result)

例 2

@DTW_rADD("12", NUM2, "5")

DTW_DIVIDE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

用一个数值除以另一个数值。

格式

@DTW_DIVIDE(number1, number2, precision, result)

@DTW_DIVIDE(number1, number2, result)

@DTW_rDIVIDE(number1, number2, precision)

@DTW_rDIVIDE(number1, number2)

参数

表 59. DTW_DIVIDE 参数
数据类型 参数 用法 说明
浮点数 number1 IN 一个表示被除数的变量或文字串。
浮点数 number2 IN 一个表示数值的变量或文字串。
整数 precision IN 一个表示正整数的变量或文字串,此整数指定了 结果的精确度。缺省值是 9。
浮点数 result OUT 包含 number1 除以 number2 的结果的变量。

返回码

表 60. DTW_DIVIDE 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1002 输入参数中包含一个由空终结字符组成的字符串值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1006 传递给函数调用的参数必须是一个输出参数,但实际上传递了一个文字串。
4000 参数中包含无效的全数值。
4001 参数中包含无效的数值。
4002 算术运算的结果是一个指数,但其值超过了所支持的范围 (-999,999,999 至 +999,999,999)。

例 1

@DTW_DIVIDE("8.0", NUM2, result)

例 2

@DTW_rDIVIDE("1", NUM2, "5")

例 3

@DTW_rDIVIDE(NUM1, "2", "5")

DTW_DIVREM


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

用一个数值除以另一个数值,并返回余数。

格式

@DTW_DIVREM(number1, number2, precision, result)

@DTW_DIVREM(number1, number2, result)

@DTW_rDIVREM(number1, number2, precision)

@DTW_rDIVREM(number1, number2)

参数

表 61. DTW_DIVREM 参数
数据类型 参数 用法 说明
浮点数 number1 IN 一个表示被除数的变量或文字串。
浮点数 number2 IN 一个表示数值的变量或文字串。
整数 precision IN 一个表示正整数的变量或文字串,此整数指定了 结果的精确度。缺省值是 9。
浮点数 result OUT 包含 number1 除以 number2 的余数的变量。

返回码

表 62. DTW_DIVIDEREM 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1002 输入参数中包含一个由空终结字符组成的字符串值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1006 传递给函数调用的参数必须是一个输出参数,但实际上传递了一个文字串。
4000 参数中包含无效的全数值。
4001 参数中包含无效的数值。
4002 算术运算的结果是一个指数,但其值超过了所支持的范围 (-999,999,999 至 +999,999,999)。

用法注意事项

如果余数非零,则余数的符号与第一个参数相同。

例 1

@DTW_DIVREM(NUM1, NUM2, result)

例 2

@DTW_rDIVREM("10", NUM2)

例 3

@DTW_rDIVREM("3.6","1.3")

例 4

@DTW_rDIVREM("-10","3")

DTW_FORMAT


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

定制一个数的格式。

格式

@DTW_FORMAT(number, before, after, expp, expt, precision, result)

@DTW_FORMAT(number, before, after, expp, expt, result)

@DTW_FORMAT(number, before, after, expp, result)

@DTW_FORMAT(number, before, after, result)

@DTW_FORMAT(number, before, result)

@DTW_FORMAT(number, result)

@DTW_rFORMAT(number, before, after, expp, expt, precision)

@DTW_rFORMAT(number, before, after, expp, expt)

@DTW_rFORMAT(number, before, after, expp)

@DTW_rFORMAT(number, before, after)

@DTW_rFORMAT(number, before)

@DTW_rFORMAT(number)

参数

表 63. DTW_FORMAT 参数
数据类型 参数 用法 说明
浮点数 number IN 一个表示数值的变量或文字串。
整数 before IN 一个表示正整数的变量或文字串。这是一个可选参数。必须输入 一个空串(""),以使用另外的参数。
整数 after IN 一个表示正整数的变量或文字串。这是一个可选参数。必须输入 一个空串(""),以指定另外的参数。
整数 expp IN 一个表示正整数的变量或文字串。必须指定一个空串 ("")来指定附加的参数。
整数 expt IN 一个表示正整数的变量或文字串。必须输入 一个空串(""),以指定另外的参数。
整数 precision IN 一个表示正整数的变量或文字串,此整数指定了 结果的精确度。缺省值是 9。
浮点数 result OUT 一个包含指定舍入和格式状态的数的变量。

返回码

表 64. DTW_FORMAT 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1002 输入参数中包含一个由空终结字符组成的字符串值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1006 传递给函数调用的参数必须是一个输出参数,但实际上传递了一个文字串。
4000 参数中包含无效的全数值。
4001 参数中包含无效的数值。

用法注意事项

  1. 如果 number 是唯一指定的参数,则将对结果进行格式化, 如同执行了 @DTW_rADD(number,"0") 一样。

  2. beforeafter 参数描述了分别有多少个字符用于 result 的整 数和小数部分。如果省略了这些参数,则用于该部分的字符个数与结果所需的长度相同。

  3. 如果 before 的值不够大,无法包含此数的整数部分(加上正数的符号),则 产生一个错误的结果。如果 before参数大于那部分所需的大小,则 number 参数值左边 用空格填补。如果 after 参数的大小与 number 参数的小数部分不同,则此数将被舍 入(或以 0 来扩充),使其结果为 after 的指定大小。如果指定 0,这将引起此数被舍入 成为一个整数。

  4. exppexpt 参数控制结果的指数部分。expp 参数 设置指数部分的位数;缺省情况下,将使用所需的位数(可能为 0)。expt 参数设置使用 指数表示法的触发点。其缺省值是精度参数的缺省值。

  5. 如果 expp 是 0,则不提供指数表示,而以简单形式来表示此数,需要时添加 0。如果 expp 不能足以包含指数,则结果错误。

  6. 如果整数或小数部分所需的位数分别超过 exptexpt 的两倍,则使用 指数部分。如果 expt 是 0,则总是使用指数表示法,除非指数为 0。( 如果 expt 为 0,这将覆盖 expt 值为 0 的情况。) 如果 expp 为非零时指数为 0,那么将在结果的指数部分提供 expp+2 个空格。 如果指数是 0,并且没有指定 expp,则使用简单表示形式。

例 1

@DTW_FORMAT(NUM, BEFORE, result)

例 2

@DTW_FORMAT("1.73", "4", "0", result)

例 3

@DTW_FORMAT("1.73", "4", "3", result)

例 4

@DTW_FORMAT(" - 12.73", "", "4", result)

例 5

@DTW_FORMAT("12345.73", "", "", "2", "2", result)

例 6

@DTW_FORMAT("1.234573", "", "3", "", "0", result)

例 7

@DTW_rFORMAT(" - 12.73")

例 8

@DTW_rFORMAT("0.000")

例 9

@DTW_rFORMAT("12345.73","","","3","6")

例 10

@DTW_rFORMAT("1234567e5","","3","0")

例 11

@DTW_rFORMAT("12345.73","","3","","0")

DTW_INTDIV


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

用一个数值除以另一个数值,并返回结果的整数部分。

格式

@DTW_INTDIV(number1, number2, precision, result)

@DTW_INTDIV(number1, number2, result)

@DTW_rINTDIV(number1, number2, precision)

@DTW_rINTDIV(number1, number2)

参数

表 65. DTW_INTDIV 参数
数据类型 参数 用法 说明
浮点数 number1 IN 一个表示被除数的变量或文字串。
浮点数 number2 IN 一个表示数值的变量或文字串。
整数 precision IN 一个表示正整数的变量或文字串,此整数指定了 结果的精确度。缺省值是 9。
浮点数 result OUT 包含 number1 除以 number2 整数部分的 的变量。

返回码

表 66. DTW_INTDIV 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1006 传递给函数调用的参数必须是一个输出参数,但实际上传递了一个文字串。
4000 参数中包含无效的全数值。
4001 参数中包含无效的数值。
4002 算术运算的结果是一个指数,但其值超过了所支持的范围 (-999,999,999 至 +999,999,999)。


例 1

@DTW_INTDIV(NUM1, NUM2, result)

例 2

@DTW_rINTDIV("2", NUM2)

DTW_MULTIPLY


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

将两个数值相乘。

格式

@DTW_MULTIPLY(number1, number2, precision, result)

@DTW_MULTIPLY(number1, number2, result)

@DTW_rMULTIPLY(number1, number2, precision)

@DTW_rMULTIPLY(number1, number2)

参数

表 67. DTW_MULTIPLY 参数
数据类型 参数 用法 说明
浮点数 number1 IN 一个表示数值的变量或文字串。
浮点数 number2 IN 一个表示数值的变量或文字串。
整数 precision IN 一个表示正整数的变量或文字串,此整数指定了 结果的精确度。缺省值是 9。
浮点数 result OUT 包含 number1number2 的乘积的变量。

返回码

表 68. DTW_MULTIPLY 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1002 输入参数中包含一个由空终结字符组成的字符串值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1006 传递给函数调用的参数必须是一个输出参数,但实际上传递了一个文字串。
4000 参数中包含无效的全数值。
4001 参数中包含无效的数值。
4002 算术运算的结果是一个指数,但其值超过了所支持的范围 (-999,999,999 至 +999,999,999)。

例 1

@DTW_MULTIPLY(NUM1, NUM2, result)

例 2

@DTW_rMULTIPLY("0.9", NUM2)

DTW_POWER


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

将一个全数提升为一个全数乘方。

格式

@DTW_POWER(number1, number2, precision, result)

@DTW_POWER(number1, number2, result)

@DTW_rPOWER(number1, number2, precision)

@DTW_rPOWER(number1, number2)

参数

表 69. DTW_POWER 参数
数据类型 参数 用法 说明
浮点数 number1 IN 一个表示要被提升为乘方的数值的变量或文字串。
浮点数 number2 IN 一个表示数值的变量或文字串。
整数 precision IN 一个表示正整数的变量或文字串,此整数指定了 结果的精确度。缺省值是 9。
浮点数 result OUT 包含 number1number2 次方的结果的 变量。

返回码

表 70. DTW_POWER 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1006 传递给函数调用的参数必须是一个输出参数,但实际上传递了一个文字串。
4000 参数中包含无效的全数值。
4001 参数中包含无效的数值。
4002 算术运算的结果是一个指数,但其值超过了所支持的范围 (-999,999,999 至 +999,999,999)。

例 1

@DTW_POWER(NUM1, NUM2, result)

例 2

@DTW_rPOWER("1.7", NUM2, precision)

DTW_SUBTRACT


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

从一个数值中减去另一个数值。

格式

@DTW_SUBTRACT(number1, number2, precision, result)

@DTW_SUBTRACT(number1, number2, result)

@DTW_rSUBTRACT(number1, number2, precision)

@DTW_rSUBTRACT(number1, number2)

参数

表 71. DTW_SUBTRACT 参数
数据类型 参数 用法 说明
浮点数 number1 IN 一个表示被减数的变量或文字串。
浮点数 number2 IN 一个表示数值的变量或文字串。
整数 precision IN 一个表示正整数的变量或文字串,此整数指定了 结果的精确度。缺省值是 9。
浮点数 result OUT 包含 number1number2 之差的变量。

返回码

表 72. DTW_SUBTRACT 返回码
返回码 说明
-1001 服务器不能处理 Net.Data 请求来分配内存。
1001 输入参数中包含一个空值。
1002 输入参数中包含一个由空终结字符组成的字符串值。
1003 在函数调用时传递的参数数目或者超过了允许的最大数目,或者小于该函数必需的最小数目。
1005 传递给函数调用的参数应该是一个字符串变量,但实际上是另一个类型的变量。
1006 传递给函数调用的参数必须是一个输出参数,但实际上传递了一个文字串。
4000 参数中包含无效的全数值。
4001 参数中包含无效的数值。
4002 算术运算的结果是一个指数,但其值超过了所支持的范围 (-999,999,999 至 +999,999,999)。

例 1

@DTW_SUBTRACT(NUM1, NUM2, comp)
%IF(comp > "0")
<P>$(NUM1) is larger than  $(NUM2).
%ENDIF
 

此例子说明了一种比较两个数值(Net.Data 中的字符串)大小的方法。

例 2

@DTW_SUBTRACT(NUM1, NUM2, result)

例 3

@DTW_rSUBTRACT("1.3", NUM2)


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]