Funny notation with #
what does this mean?
if CDbl(Trim(Range("M" & r).Text)) > 0# then...
what does the # do?? and wha开发者_如何学JAVAt does cdbl do?
****Here is a Cheat Sheet for DataTypes ****
Variable End with:
$ : String
% : Integer (Int16)
& : Long (Int32)
! : Single
# : Double
@ : Decimal
Start with:
&H : Hex
&O : Octal
Comparison between VB and VB.Net (reference)
Visual Studio .Net added Literal Types (reference)
Value End with: (For more complete list, refer the the reference)
S : Short (Int16)
I : Integer (Int32)
L : Long (Int64)
F : Single
R : Double
D : Decimal
Convert to:
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()
convert an expression to a Double:
A data type that holds double-precision floating-point numbers as 64-bit numbers in the range -1.79769313486231E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values.
"#" is the "type-declaration character" for a Double. Following a number with this symbol means that it will treat the number as a double instead of trying to guess what exact variable type to use (it would likely have treated the 0 as a integer without this)
Visual Basic uses the pound sign (# ) to indicate double-precision values. So 0#
enforces to treat this constant as of type double. CDbl
converts expression to double type. * Double means double precision floating point.
CDbl casts the contents to a double value. The # indicates it's a numeric double value. VB and VBA are sometimes quite forgiving when you're dealing with numbers, which can prove to be dangerous!
精彩评论