如何将变量初始化为最大值

时间:2015-08-24 15:32:32

标签: vbscript

我试图弄清楚如何将VBScript中的变量初始化为其最大值。

例如,在C ++中,我会做类似的事情:

double x = MAX_DOUBLE;

我不确定如何在VBScript中执行此操作。

更新

目前,我已将变量本身定义为脚本全局范围内的常量值。我不确定这是否是最优雅的方式。我可以使用内置变量吗?

Const MAX_DOUBLE = CDbl(1.79769313486232e307)
Const MIN_DOUBLE = CDbl(-1.79769313486232e307)

1 个答案:

答案 0 :(得分:1)

我从未发现MSDN上描述的限制对于许多VBScript数据类型都是准确的。例如,Currency类型为我提供任何溢出> XXX.5625,即使文档说它应该转到XXX.5808Double也是如此。文档说最大值应为1.79769313486232e308,但尾数中的最终2会导致溢出。这些是我过去使用过的值:

Const MIN_BYTE     =  0
Const MAX_BYTE     =  255
Const MIN_INTEGER  = -32768
Const MAX_INTEGER  =  32767
Const MIN_LONG     = -2147483648
Const MAX_LONG     =  2147483647
Const MIN_SINGLE   = -3.402823e38
Const MAX_SINGLE   =  3.402823e38
Const MIN_DOUBLE   = -1.79769313486231e308
Const MAX_DOUBLE   =  1.79769313486231e308
Const MIN_CURRENCY = -922337203685477.5625
Const MAX_CURRENCY =  922337203685477.5625
Const MIN_DATE     = #100/1/1#
Const MAX_DATE     = #9999/12/31#

因为VBScript使用Variants,请注意,在为变量分配“max”(或min)值时,可能无法获得所期望的类型。例如:

b = MAX_BYTE      ' Actually type Integer
s = MAX_SINGLE    ' Actually type Double
c = MAX_CURRENCY  ' Actually type Double

如果您想确保获得正确的数据类型,则需要明确投射:

b = CByte(MAX_BYTE)     ' Type Byte
s = CSng(MAX_SINGLE)    ' Type Single
c = CCur(MAX_CURRENCY)  ' Type Currency