Смешное обозначение С#

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

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

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

Ответы

Ответ 1

* Вот чит-лист для конверсий 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)

Ответ 2

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

Тип данных, который содержит плавающие точки с двойной точностью номера в виде 64-разрядных номеров в диапазоне -1.79769313486231E308 - -4.94065645841247E-324 для отрицательных значений; 4.94065645841247E-324 - 1.79769313486232E308 для положительных значений.

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

Ответ 3

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

Ответ 4

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