2012-06-05 4 views

ответ

56

Символ декларации типа для Double - это знак числа (#). Также называется HASH

Другие символы объявления типа являются:

  1. Integer%
  2. Long &
  3. Валюта @
  4. Single!
  5. Double #
  6. Строка $

Не понимают значение # здесь.

Это означает, что, когда выражение вычисляется, число перед символом объявления типа рассматривается в качестве конкретного типа данных, а не как варианты.

См. Этот пример, который в основном такой же.

Sub Sample1() 
    Dim a# 

    a = 1.2 

    Debug.Print a 
End Sub 

Sub Sample2() 
    Dim a As Double 

    a = 1.2 

    Debug.Print a 
End Sub 

EDIT

Позвольте мне объяснить это немного более подробно.

Рассмотрим эти две процедуры

Sub Sample1() 
    Dim a As Double, b As Integer 

    b = 32767 
    a = b * 100 

    Debug.Print a 
End Sub 

Sub Sample2() 
    Dim a As Double, b As Integer 

    b = 32767 
    a = b * 100# 

    Debug.Print a 
End Sub 

Вопрос: Один из них не получится. Вы можете догадаться, какой из них?

Ans: 1-я процедура Sub Sample1() не удастся.

Причина:

В Sample2, когда вы b * 100# результат расчета будет типа Double. Поскольку он находится в пределах Double, поэтому вычисление завершается успешно, и результат присваивается переменной a.

Сейчас в Sample1, когда вы делаете b * 100, результат вычисления будет иметь тип Integer, так как оба операнда имеют тип integer. Но результат вычисления превышает пределы хранилища Integer. В результате он выйдет из строя.

Надеюсь, это поможет :)

+0

+1 Еще со времен старого VB я нашел эти ярлыки очень удобными. :) –

+2

@PradeepKumar: Да, эти ярлыки удобны, но я их никогда не любил :) Я всегда был очень «экспрессивным» с моими заявлениями, я думаю: P –

+0

Очень хорошо объяснено. Я видел, как многие разработчики путались с этим. Они, похоже, не могут отличить тот факт, что переменная памяти, используемая для вычисления, отличается от целевой переменной назначения, а их типы данных могут быть разными. :) –

Смежные вопросы