Когда использовать функции CDbl и CStr с использованием Visual Basic - PullRequest
3 голосов
/ 26 января 2012

Я учусь использовать эту программу.У меня есть несколько недель, чтобы изучить его, и я прекрасно понимаю большинство из них, но я просто не могу понять, когда использовать функции CDbl, CInt, CStr и т. Д.Вот пример нескольких строк кода, которые я не могу понять:

If IsNumeric(txtFirst.Text) And IsNumeric(txtSecond.Text) Then
  txtSum.Text = CStr(CDbl(txtFirst.Text) + CDbl(txtSecond.Text))

Эта программа должна взять два числа, введенных пользователем, и сложить их вместе.Просто.Я играл с этим, и я убрал функции CDbl и CStr, и два числа, которые должны были быть сложены вместе, были добавлены только бок о бок (например, если я ввел 2 и 15 в качестве моегочисла это выплюнуло бы 215).

Так что мне любопытно, когда использовать эти функции.

Как же во второй строке написано CStr(CDbl(?Зачем мне нужно конвертировать в двойной, а затем в строку?Это мое понимание, если только я не читаю это неправильно.

Другой вопрос, который у меня возникает, если я объявлю var1 как Dim var1 as Double.Я постоянно вижу следующую строку как var1 = CDbl(txtbox.text) и так далее.Я не понимаю, почему мы должны конвертировать в Double здесь, так как, когда я объявил переменную как double, она уже должна быть в двойной форме, не так ли?

Ответы [ 2 ]

5 голосов
/ 26 января 2012
  1. Внутренний CDbl(txtFirst.Text) преобразует значение первого текстового поля в число.Внешний CStr(... + ...) преобразует всю сумму обратно в строку.

  2. Ваша переменная объявлена ​​как Double, но свойство Text является String.
    Вам нужно CDbl, чтобы преобразовать строку в число, чтобы оно могло поместиться внутри переменной.

2 голосов
/ 18 марта 2012

Чтобы понять этот код:

 txtSum.Text = CStr(CDbl(txtFirst.Text) + CDbl(txtSecond.Text))

Давайте разделим его на части. Прежде всего, значение в элементе управления textbox имеет тип String. Чтобы выполнить ДОБАВЛЕНИЕ, строковый тип необходимо преобразовать в двойной тип, поэтому вы делаете CDbl(txtFirst.Text) и CDbl(txtSecond.Text)

Операция ДОБАВЛЕНИЕ выполняется CDbl(txtFirst.Text) + CDbl(txtSecond.Text). Чтобы присвоить результат этого ДОБАВЛЕНИЯ элементу управления textbox, вам необходимо преобразовать его в тип String. Таким образом, вы делаете CStr() на CDbl(txtFirst.Text) + CDbl(txtSecond.Text). Таким образом, полная операция в одной строке кода txtSum.Text = CStr(CDbl(txtFirst.Text) + CDbl(txtSecond.Text))

...