【发布时间】:2010-10-30 01:37:40
【问题描述】:
根据 VB6 的 MSDN 帮助
浮点值可以表示为 mmmEeee 或 mmmDeee,其中 mmm 是尾数,eee 是指数(10 的幂)。 Single 数据类型的最大正值为 3.402823E+38,即 3.4 乘以 10 的 38 次方; Double 数据类型的最大正值为 1.79769313486232D+308,即 1.8 乘以 10 的 308 次方。使用 D 分隔数字文字中的尾数和指数会导致该值被视为 Double 数据类型。同样,以相同的方式使用 E 会将值视为 Single 数据类型。
现在在 VB6 IDE 中我尝试输入这个
const MAX_DOUBLE as Double = 1.79769313486232D+308
但是,一旦我离开那条线,IDE 就会抛出错误 6(溢出)
当您尝试进行超出分配目标限制的分配时,会导致溢出。 ...
那么如何定义 MAX_DOUBLE(以及 MIN_DOUBLE)?
【问题讨论】:
-
如果 IDE 在您离开线路后立即显示该消息,您可能需要在选项中关闭自动语法检查。很多人觉得那些不停的消息框很烦人。 stackoverflow.com/questions/664370/…
-
我不确定你会用这个做什么。测试变量是否大于 MAX_DOUBLE?哈哈
-
@Bob:很多用途,例如作为哨兵值。 en.wikipedia.org/wiki/Sentinel_value
-
但这不是我们拥有 Null 的主要原因之一吗?是的,这意味着使用 Variant,但至少它使您免于魔数值落在有效值的自然范围内的危险。性能很重要,但不如避免内置陷阱重要。
标签: ide vb6 constants max minimum