有趣的符号#
这是什么意思?
if CDbl(Trim(Range("M" & r).Text)) > 0# then...
#做什么? 和cdbl做什么?
* 这是一个DataType转换的备忘单 *
结束于:
$ : String % : Integer (Int32) & : Long (Int64) ! : Single # : Double @ : Decimal
从…开始:
&H : Hex &O : Octal
转换成:
CBool(expression) CByte(expression) CCur(expression) CDate(expression) CDbl(expression) CDec(expression) CInt(expression) CLng(expression) CLngLng(expression) (Valid on 64-bit platforms only.) CLngPtr(expression) CSng(expression) CStr(expression) CVar(expression)
CDbl()
将expression式转换为Double:
一个数据types,它将双精度浮点数保存为64位数字,范围为-1.79769313486231E308到-4.94065645841247E-324(对于负值); 4.94065645841247E-324至1.79769313486232E308为正值。
“#”是Double的“types声明字符”。 用这个符号后面的数字意味着它将把数字视为一个double,而不是试图猜测使用了什么确切的variablestypes(它可能已经将0视为一个整数,而没有这个)
Visual Basic使用井号(#)来表示双精度值。 所以0#
强制把这个常量当作doubletypes来处理。 CDbl
将expression式转换为doubletypes。 * Double表示双精度浮点。
CDbl将内容转换为双精度值。 #表示它是一个数字双精度值。 当你处理数字时,VB和VBA有时是相当宽容的,这可能是危险的!