Смешная запись с # - PullRequest
14 голосов

что это значит?

if CDbl(Trim(Range("M" & r).Text)) > 0# then...

что делает # ?? и что делает cdbl?

Ответы [ 4 ]

10 голосов
/ 13 мая 2010

CDbl() преобразовать выражение в Double:

Тип данных, который содержит плавающую точку двойной точности числа как 64-битные числа в диапазоне От -1,79769313486231E308 до -4,94065645841247E-324 для отрицательных значений; 4.94065645841247E-324 к 1.79769313486232E308 для положительных значений.

«#» - это «символ объявления типа» для Double. После числа с этим символом это означает, что оно будет обрабатывать число как двойное вместо того, чтобы пытаться угадать, какой именно тип переменной использовать (скорее всего, 0 без него будет рассматриваться как целое число)

9 голосов
/ 11 октября 2013

**** Вот шпаргалка для DataTypes ****

Переменная заканчивается на:

$ : String
% : Integer (Int16)
& : Long (Int32)
! : Single
# : Double
@ : Decimal

Начните с:

&H : Hex
&O : Octal

Сравнение между VB и VB.Net ( ссылка )

В Visual Studio .Net добавлены литеральные типы ( ссылка )

Значение заканчивается на: (Более полный список см. В ссылке)

S : Short (Int16)
I : Integer (Int32)
L : Long (Int64)
F : Single
R : Double
D : Decimal

Преобразовать в:

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)
3 голосов
/ 13 мая 2010

Visual Basic использует знак фунта (#) для указания значений двойной точности. Таким образом, 0# принудительно обрабатывает эту константу как тип double. CDbl преобразует выражение в тип double. * Двойной означает двойную точность с плавающей точкой.

2 голосов
/ 13 мая 2010

CDbl преобразует содержимое в двойное значение.Знак # означает, что это числовое двойное значение.VB и VBA иногда прощают, когда имеешь дело с числами, которые могут оказаться опасными!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...