[水晶报表]函数大全--数字函数篇

 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进行调用的理由是:使报表每次看起来都与预览时完全相同。换言之,它使您得以充分利用随机数,但获得的结果可以再现。  

你可能感兴趣的:(c,basic,报表)