Abs (x):
Basic 语法和 Crystal 语法。
参数:x 是您希望返回绝对值的数字或货币。
返回:数字值
操作:Abs (x) 返回 x 的绝对值。
示例:
Abs(1.50)
返回 1.50。
Abs(-1.50)
返回 1.50。
Abs(10 - 7)
返回 3。
Abs(7 - 10)
返回 3。
Rem Basic 语法:
If Abs(37 - {file.FIELD}) > 1 Then
formula = "Maintenance, Temperature Check "
End If
//Crystal 语法
If Abs(37 - {file.FIELD}) > 1 Then
"需维修,请检查温度"
Else
"" ;
此示例会将试验热区的温度变化超过 ±1 摄氏度的实例标记出来。
Sgn (number):
Basic 语法和 Crystal 语法。
参数:number 是要求得其符号的值。
返回:返回 1、0 或 -1
操作:Sgn 返回给定数字的符号:如果 number > 0,则返回 1;如果 number 是 0,则返回 0;如果 number < 0,则返回 -1。
下列示例适用于 Basic 语法和 Crystal 语法:
Sgn (-10)
返回 -1。
Sgn (0)
返回 0。
Sgn (10)
返回 1。
Int (number):
Basic 语法和 Crystal 语法。
参数:number 是要将其向下舍入到最接近的整数的值。
返回:整数值
操作:Int 返回给定数字的整数部分,方法是将其向下舍入到下一个最小的整数。
下列示例适用于 Basic 语法和 Crystal 语法:
Int (123.678)
返回 123。
Int (-123.678)
返回 -124。
Int (-123.1)
返回 -124。
注释:此函数的使用类似 Visual Basic 的同名函数。
Fix (n)(或 Truncate (n))和 Int (n) 的结果相同,但 n 为负数时例外,此时 Fix 和 Truncate 都返回大于或等于 n 的第一个整数,而 Int 返回小于或等于 n 的第一个整数。例如,
Fix (-10.2)
Truncate (-10.2)
二者都返回 -10。
Int (-10.2)
返回 -11。
另请参见Fix ,Truncate 函数
Round:
Basic 语法和 Crystal 语法。
重载:
Round (x)
Round (x, #places)
参数:x 是要四舍五入的数字或货币。#places 是一个整数,表示 x 要四舍五入到的小数位数。
返回:数字
操作:如果忽略 #places 参数,则 Round 四舍五入到最接近的整数。如果小数点右边的值小于或等于 .499,则程序四舍五入到下一个最小数字。如果小数点右边的值等于或大于 .5,则程序四舍五入到下一个最大数字。
如果使用了 #places 参数,则将 x 中的值四舍五入到由 #places 指定的最接近的小数位数。将 #places 指定为 0 与不使用 #places 参数的作用相同。也可以为 #places 指定负数,该数字将四舍五入到最接近的十位、百位或千位,以此类推。
典型用法:在将值四舍五入到特定的小数位数比使用原始值更合适时,可随时使用 Round 函数。
下列示例适用于 Basic 语法和 Crystal 语法:
Round(1.23456)
返回 1。
Round(1.499)
返回 1。
Round(1.5000)
返回 2。
Round(2345.23456,4)
返回 2345.2346。
Round(2345.23456,3)
返回 2345.235。
Round(2345.23456,2)
返回 2345.23。
Round(2345.23456,0)
返回 2345。
Round(2345.23456,-1)
返回 2350。
Round(2345.23456,-2)
返回 2300。
Round(2345.23456,-3)
返回 2000。
Round(1.234499,3)
返回 1.234。
Round(1.234500,3)
返回 1.235。
Round({file.AMOUNT},1)
返回 1854.5,其中 Amount = 1854.49。
Round({file.AMOUNT})
返回 1854.00,其中 Amount = 1854.49。
Round({file.AMOUNT})
返回 1855.00,其中 Amount = 1854.51。
Round({file.WEIGHT} / 100)
返回 4,其中 Weight = 424。
Round({file.WEIGHT} / 100)
返回 5,其中 Weight = 451。
Round((A * B) / C)
返回 11,其中 A = 25、B = 3 和 C = 7。
Round(file.AMOUNT,1)
返回 1854.5,其中 Amount = 1854.51。
Round({file.WAGE} * {file.HOURS WORKED}, 2)
返回 $146.63,其中 Wage = $5.75、Hours worked = 25.5。
注释:四舍五入也可用作字段中数值的格式化选项;要知道使用字段格式化功能可能会影响值在公式中的使用。参见 ToNumber 和 到货币运算符。另请参见Truncate , Fix,Int (number)
RoundUp:
Basic 语法和 Crystal 语法。
重载:
RoundUp (x)
RoundUp (x, #places)
参数:x 是要四舍五入的实数。#places 是一个整数,表示 x 要四舍五入到的小数位数。
返回:数字
操作:RoundUp 返回已向上舍入的数字。此函数将向上舍入(远离零)。
下列示例适用于 Basic 语法和 Crystal 语法:
RoundUp(4.1,0)
返回 5。
RoundUp(5.34)
返回 6。
RoundUp(6.36521,3)
返回 6.366。
RoundUp(-6.36521,3)
返回 -6.366。
RoundUp(50.43,-1)
返回 60。
注释:如果 #places 大于 0(零),则数字会向上舍入到指定的小数位数;如果 #places 为 0 或未指定,则数字会向上舍入到下一个整数;如果 #places 小于 0,则数字会向上舍入到小数点的左边。
另请参见Round
Truncate:
Truncate 和 Fix 是等价函数。然而,在 Crystal 语法中,Truncate 是首选,而在 Basic 语法中,Fix 是首选。
重载:
Truncate (x)
Truncate (x, #places)
参数:x 是要截断的数字或货币。#places 是一个整数,表示该值被截断后要保留多少位小数。(此参数是可选的。)
返回:数字
操作:Truncate(x) 通过将数在小数点处截断来返回一个小数或整数。如果 #places 参数指定,则该数字将被截断到所指定的小数位数,且该函数返回一个小数数字。如果 #places 为负数,则该数字将被四舍五入到第一个十位、百位,以此类推。
典型用法:只要报表或计算不需要小数右边的字符,就可以使用此函数。
下列示例适用于 Basic 语法和 Crystal 语法:
Truncate (1.23456)
返回 1。
Truncate (1.499)
返回 1。
Truncate (1.599)
返回 1。
Truncate (1.999)
返回 1。
Truncate(12346.33, 1)
返回 12346.3。
Truncate(12345.33, -2)
返回 12300.00。
如果库存有 147 个高尔夫球并且想知道可用于销售的打数,则计算过程为 147/12=12.25 12.25(截断后) = 12,因此有 12 打可用于销售。如果只按打数来销售球,则所截断的 .25 打无关紧要。
Truncate({file.BALL INVENTORY} / 12)
返回 12,其中 Ball inventory = 147 (147/12 = 12.25,12.25 截断后 = 12)。
Truncate({file.BALL INVENTORY} / 12)
返回 12,其中 Ball inventory = 155 (155/12 = 12.92,12.92 截断后 = 12)。
Truncate({file.BALL INVENTORY} / 12)
返回 13,其中 Ball inventory = 157 (157/12 = 13.08,13.08 截断后 = 13)。
注释:这不是一个四舍五入函数;Truncate 只删除小数点右边的所有字符;有关四舍五入的解释,参见 Round。
对于 Truncate (n) 和 Int (number),当 n(数字)为负数时 Truncate 返回大于或等于 n 的第一个整数,而 Int 返回小于或等于 n 的第一个整数,除此以外它们是同义语。例如,
Truncate (-10.2)
返回 -10。
Int (-10.2)
返回 -11。
截断也可作为字段中数字值的一种格式化选项。要知道使用字段格式化功能可能会影响值在公式中的使用。有关转换为数字和货币的详细信息,参见 ToNumber 和 到货币运算符。
另请参见:Int (number)
MRound:
Basic 语法和 Crystal 语法。
重载
MRound (x)
MRound (x, multiple)
参数:x 是要四舍五入的值。multiple 是您要将 x 值四舍五入到的倍数。
返回:数字
操作:MRound返回已四舍五入到指定倍数的数字。如果除法的余数大于或等于倍数值的一半,此函数将向上舍入(远离零)。
下列示例适用于 Basic 语法和 Crystal 语法:
MRound(10,3)
返回 9。
MRound(-10,-3)
返回 -9。
MRound(1.3,0.2)
返回 1.4。
MRound(5,-2)
返回 6。
MRound(-5,2)
返回 -6。
注释:Crystal Reports 将忽略倍数的正负号,并且函数的结果将采用第一个参数的正负号。
Ceiling:
Basic 语法和 Crystal 语法。
重载
Ceiling (x)
Ceiling (x, multiple)
参数:x 是要四舍五入的值。multiple 是您要将 x 值四舍五入到的倍数。
返回:数字
操作:Ceiling 返回已四舍五入到指定倍数的数字。此函数将向上舍入(远离零)。
下列示例适用于 Basic 语法和 Crystal 语法:
Ceiling(3.5,1)
返回 4。
Ceiling(-2.5,-2)
返回 -4。
Ceiling(-2.5,2)
返回 -4。
Ceiling(5.43,.05)
返回 5.45。
Ceiling(.43,-1)
返回 1。
注释:Crystal Reports 将忽略倍数的正负号,并且函数的结果将采用第一个参数的正负号;当远离零对值进行调整时,将始终将值向上舍入(与值的正负号无关);如果数字是 multiple 的准确倍数,则不进行四舍五入。
Floor:
Basic 语法和 Crystal 语法。
重载:
Floor (x)
Floor (x, multiple)
参数:x 是要四舍五入的值;multiple 是您要将 x 值四舍五入到的倍数。
返回:数字
操作:Floor 返回已四舍五入到指定倍数的数字。此函数将向下舍入(远离零)。
下列示例适用于 Basic 语法和 Crystal 语法:
Floor(3.5,1)
返回 3。
Floor(-2.5,-2)
返回 -2。
Floor(-2.5,2)
返回 -2。
Floor(5.43,.05)
返回 5.40。
Floor(.43,-1)
返回 0。
注释:Crystal Reports 将忽略倍数的正负号,并且函数的结果将采用第一个参数的正负号;当远离零对值进行调整时,将始终将值向下舍入(与值的正负号无关);如果数字是 multiple 的准确倍数,则不进行四舍五入。
0 不能作为 multiple 参数。否则,将导致错误。但是,Floor(0,0) 是允许的,并将返回 0。
Fix:
Fix 和 Truncate 是等价函数。然而,在 Basic 语法中,Fix 是首选,而在 Crystal 语法中,Truncate 是首选。
重载:
Fix (number)
Fix (number, #places)
参数:number 是要截断的数字值;它可以为正数、0 或负数;#places是一个可选数字,表示要被截断到的小数位数。若省略,则使用 0。
返回:整数值,它可以为正数、0 或负数。
操作:Fix 将一个数字截断到指定的小数位数,并将其返回。若省略 #places,则使用 0。
下列示例适用于 Basic 语法和 Crystal 语法:
Fix (123.678)
返回 123。
Fix (-123.678)
返回 -123。
Fix (123.678,1)
返回 123.6。
Fix (123.678,2)
返回 123.67。
注释:带有单个参数的 Fix 函数(即 Fix (number)),其使用类似于 Visual Basic 的同名函数;Fix (n) 和 Int (number) 除了当 n(数字)为负数时 Fix 返回大于或等于 n 的第一个整数,而 Int 返回小于或等于n的第一个整数之外,它们的作用相同。例如,
Fix (-10.2)
返回 -10。
Int (-10.2)
返回 -11。
Remainder (num, denom):
Basic 语法和 Crystal 语法。
参数:Numerator(分子)是小数值;Denominator(分母)也是小数值。
返回:小数值
操作:Remainder返回分子(被除数)除以分母(除数)后的余数。在典型的除法运算中,程序将商表示为整数(如果有的话)和最多六位小数组成的数。然而,程序在使用 Remainder时,在内部进行除法运算,然后确定整数商和余数,并仅返回余数。
典型用法:可以在进行换算(英尺到英里、件到罗等)时使用此函数。也可以使用它从一个数组中每隔 n-1 个项目就选出一个项目。
下列示例适用于 Basic 语法和 Crystal 语法:
Remainder(12,5)
返回 2。
Remainder(16,5)
返回 1。
Rem Basic 语法
If Remainder ({file.EXAM#}, 7) = 0 Then
formula = "*****"
End If
//Crystal 语法
If Remainder ({file.EXAM#}, 7) = 0 Then
"*****"
Else
""
这会每隔 7 次考试标记一次,以供第二方进行评分。
ToText(Truncate({file.DAYS}/7)) + " week(s), " + ToText(Remainder({file.DAYS},7)) + " day(s)"
返回“9 week(s), 1 day(s)”。将天数转换为周数和天数。例如,如果此字段的值为 64 天,则公式返回的值为“9 week(s), 1 day(s)”。
另请参见:模数 (x Mod y)
Sin (number):
Basic 语法和 Crystal 语法。
参数:用弧度表示的角度的数字值。
返回:介于 -1 和 1 之间的数字值
操作:Sin返回一个数字,指定用弧度给出的角度的正弦。以直角三角形为例,它返回指定角对边的长度除以斜边长度。
下列示例适用于 Basic 语法和 Crystal 语法:
Sin (1)
返回 0.8415(四舍五入到 4 位数字)。这是 1 弧度的正弦。
Sin (30 * crPi / 180)
返回 0.5。这是 30 度的正弦。在计算正弦之前,该角度乘以 crPi / 180 后转换为弧度。
注释:此函数的使用类似 Visual Basic 的同名函数;Sin 所返回的值的范围介于 -1 和 1 之间。
Cos (number):
Basic 语法和 Crystal 语法。
参数:用弧度数表示的角度的数字值。
返回:介于 -1 和 1 之间的数字值
操作:Cos返回一个数字,指定用弧度给出的角度的余弦。以直角三角形为例,它返回指定角邻边的长度除以斜边的长度。
下列示例适用于 Basic 语法和 Crystal 语法:
Cos (1)
返回 0.5403(四舍五入到 4 位数字)。这是 1 弧度的余弦。
Cos (60 * crPi / 180)
返回 0.5。这是 60 度的余弦。在计算余弦之前,该角度乘以 crPi / 180 后转换为弧度。
注释:此函数的使用类似 Visual Basic 的同名函数;Cos 返回的值的范围介于 -1 和 1 之间。
Tan (number):
Basic 语法和 Crystal 语法。
参数:用弧度表示的角度的数字值。
返回:数字值
操作:Tan返回一个数字,指定用弧度给出的角度的正切。以直角三角形为例,它返回指定角对边的长度除以与该角邻边的长度。
下列示例适用于 Basic 语法和 Crystal 语法:
Tan (1)
返回 1.5574(四舍五入到 4 位数字)。这是 1 弧度的正切。
Tan (45 * crPi / 180)
返回 1。这是 45 度的正切。在计算正切之前,该角度乘以 crPi / 180 后转换为弧度。
注释:此函数的使用类似 Visual Basic 的同名函数。
Atn (number):
Basic 语法和 Crystal 语法。
参数:数字值
返回:用弧度数指定的角度的数字值
操作:Atn 返回一个数字,该数字指定所给的数字参数的反正切。换言之,它返回其正切是所给数字参数的角度。
下列示例适用于 Basic 语法和 Crystal 语法:
Atn (1)
返回 0.7854 弧度的角度(四舍五入到 4 位小数)。要将此角度转换为度,乘以 180 / crPi。例如,Atn (1) * 180 / crPi 等于 45 度。
注释:此函数的使用类似 Visual Basic 的同名函数;Atn 返回的值的范围介于 -pi/2 和 pi/2 r弧度之间。
Pi:
Basic 语法和 Crystal 语法。
返回数学值 pi,它等于 3.14(如果四舍五入到 2 位小数)。
Sqr (number):
Basic 语法和 Crystal 语法。
参数:大于或等于 0 的数字值。
返回:数字值
操作:Sqr 返回给定数字的平方根。
下列示例适用于 Basic 语法和 Crystal 语法:
Sqr (100)
返回 10。
注释:此函数的使用类似 Visual Basic 的同名函数。
Exp (number):
Basic 语法和 Crystal 语法。
参数:指定乘幂的数字值。
返回:数字值。
操作:Exp 返回一个数字,指定 e(自然对数的底)的乘幂次方。e 的值约为 2.718282。
下列示例适用于 Basic 语法和 Crystal 语法:
Exp (1.5)
返回 e 的 1.5 次方,约为 4.48169。
注释:此函数的使用类似 Visual Basic 的同名函数;如果给定的数字参数约大于 705,则会出现数字溢出。
Log (number):
Basic 语法和 Crystal 语法。
参数:数字值
返回:数字值
操作:Log 返回一个数字,指定所给数的自然对数。自然对数是以 e 为底的对数,其中 e 约为 2.718282。
下列示例适用于 Basic 语法和 Crystal 语法:
Log (1.5)
返回 0.4055(四舍五入到 4 位数字)。
注释:此函数的使用类似 Visual Basic 的同名函数;当您使用以下逻辑时,此函数可计算底为任意值的对数:
LogAnyBase (x,base) = log(x)/log(base)
(x 代表您想计算对数的数字;base 代表您想使用的底。)
例如,对于以 10 为底的对数,您将输入以下公式文本:
log(x)/log(10)
Rnd:
Basic 语法和 Crystal 语法。
重载:
Rnd ()
Rnd (seed)
参数:seed (种子)是一个可选数字值参数。
返回:一个数字值。
操作:Rnd 返回一个大于或等于 0 并且小于 1 的随机数。如果 seed 等于 0,则 Rnd 返回从前一次对 Rnd 的调用中返回的随机数。如果 seed 未提供或大于 0,则 Rnd 返回内部生成的随机数序列中的下一个随机数。如果 seed 小于 0,则 Rnd 使用此 seed 值启动新的随机数序列,并返回此序列中的第一个值。
典型用法:在公式需要随机生成的数字(如进行统计计算或随机选择记录以对报表中的数据进行限制)时,使用该函数。
注释:此函数类似于 Visual Basic 的同名函数;您可以不通过指定负 seed 参数从而启用新随机数序列的方法调用 Rnd。如果这样做,程序会使用系统时钟来生成内部 seed;通过调用带负 seed 参数的 Rnd来启用新的随机数序列,然后不带参数(或带有一个正参数)对 Rnd进行调用的理由是:使报表每次看起来都与预览时完全相同。换言之,它使您得以充分利用随机数,但获得的结果可以再现。