我试图弄清楚如何将VBScript中的变量初始化为其最大值。
例如,在C ++中,我会做类似的事情:
double x = MAX_DOUBLE;
我不确定如何在VBScript中执行此操作。
更新
目前,我已将变量本身定义为脚本全局范围内的常量值。我不确定这是否是最优雅的方式。我可以使用内置变量吗?
Const MAX_DOUBLE = CDbl(1.79769313486232e307)
Const MIN_DOUBLE = CDbl(-1.79769313486232e307)
答案 0 :(得分:1)
我从未发现MSDN上描述的限制对于许多VBScript数据类型都是准确的。例如,Currency
类型为我提供任何溢出> XXX.5625
,即使文档说它应该转到XXX.5808
。 Double
也是如此。文档说最大值应为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