如何减少VB6中文本框中的值

时间:2012-03-01 22:04:19

标签: vb6 textbox type-conversion

我是VB的菜鸟,我需要知道它是如何完成的。 没有做过3年的VB记不起来了。 文本框中有一个值(5.43),需要减少0.34。

但这是代码: TextBox3.Text = Val(TextBox3.Text)-0.34

我该怎么做? 这是VB 6 顺便说一下

6 个答案:

答案 0 :(得分:1)

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

因为您的初始值有括号(5.34),所以在操作之前必须将其转换为特定数字。

Val不承认parens中的值为负数。原始示例中的Val()函数将其转换为0的方式与val("abcd")也将返回0的方式相同,因为它假设两者都是字符串。

您可以在即时窗口中测试这些条件,以快速查看结果。

enter image description here

答案 1 :(得分:0)

没试过,但可能是: TextBox3.Text = Cdbl(TextBox3.Text)-0.34

答案 2 :(得分:0)

以下代码将执行此操作:

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

但你应该知道发生了什么。

TextBox不存储double type,它存储string type。上面的代码尝试将字符串转换为double,从中减去常量值,然后将其转换回字符串。

如果文本框中的字符串不是有效数字,您应该问自己会发生什么。在上面的代码中,Double.Parse()将抛出异常。 Double.TryParse()将返回转换是否成功。

或者是否无法在文本框中输入非数字?在这种情况下,尽管可取,但不需要进行安全检查。

在执行type conversions时,您需要提出这些问题,否则当某个值无法转换为您期望的类型时,您的程序将无法预测。

减少它的更安全的方法是:

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

答案 3 :(得分:0)

试试这个..它可能正常工作

Dim TxtValue as Integer
TxtValue = TextBox3.Text

由于TxtValue为Integer,小数将自动删除。

答案 4 :(得分:-1)

喜欢这个??

TextBox3.Text = Double.Parse(TextBox3.Text)-0.43

答案 5 :(得分:-2)

这适用于C#

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

number = number - .34;