Как уменьшить значение в текстовом поле в VB6 - PullRequest
0 голосов
/ 02 марта 2012

Я новичок в VB, и мне нужно знать, как это делается.Не сделал VB за 3 года, не могу вспомнить многое из этого.В текстовом поле есть значение (5.43), и его нужно уменьшить на 0.34.

Но это код: TextBox3.Text = Val (TextBox3.Text) -0.34

Как мне это сделать? ЭТО VB 6 кстати

Ответы [ 6 ]

1 голос
/ 02 марта 2012

TextBox3.Text = CDbl(TextBox3.Text) - 0.34

Поскольку ваше начальное значение содержит круглые скобки (5.34), вы должны преобразовать его в конкретное число перед операцией в.

Val не распознает отрицательные значения в паренах. Функция Val() в вашем исходном примере преобразует ее в 0 таким же образом, что val("abcd") также возвращает 0, поскольку предполагает, что обе строки являются строками.

Вы можете проверить эти условия в ближайшем окне, чтобы быстро увидеть результаты.

enter image description here

0 голосов
/ 03 марта 2012

Попробуйте это .. Это может просто сработать

Dim TxtValue as Integer
TxtValue = TextBox3.Text

Поскольку TxtValue равно Integer, десятичное число будет автоматически удалено.

0 голосов
/ 02 марта 2012

Следующий код сделает это:

TextBox3.Text = Cstr(CDbl(TextBox3.Text) - 0.34)

Но вы должны знать, что происходит.

TextBox не хранит тип double , он хранит тип строки .Приведенный выше код пытается преобразовать строку в двойное число, вычесть из нее ваше постоянное значение и преобразовать его обратно в строку.

Вы должны спросить себя, что должно произойти, если строка в текстовом поле не являетсядействительный номер.В приведенном выше коде Double.Parse () вызовет исключение. Double.TryParse () вернет, было ли преобразование успешным.

Или невозможно ввести не-число в текстовое поле?В этом случае проверка безопасности не нужна, хотя и целесообразна.

Вам необходимо задавать эти вопросы при преобразованиях типов , иначе ваша программа будет работать непредсказуемо, если значение не преобразуется ввведите, что вы ожидали.

Более безопасный способ уменьшить это будет:

Const DECREMENT_VALUE As Double = 0.34

Dim isDouble As Boolean
isDouble = IsNumeric(TextBox3.Text)
If isDouble Then
    Dim newValue As Double
newValue = CDbl(TextBox3.Text)
    newValue = newValue - DECREMENT_VALUE
    TextBox3.Text = CStr(newValue)
Else
    MsgBox "The Value was not a Double! Could not Decrement!"
End If
0 голосов
/ 02 марта 2012

Это будет работать в C #

double number = Convert.ToDouble (textBox1.Text);

число = число - .34;

0 голосов
/ 02 марта 2012

Как это ??

TextBox3.Text = Double.Parse (TextBox3.Text) -0,43

0 голосов
/ 02 марта 2012

Не пробовал, но может быть: TextBox3.Text = Cdbl (TextBox3.Text) -0,34

...