我是VB的菜鸟,我需要知道它是如何完成的。 没有做过3年的VB记不起来了。 文本框中有一个值(5.43),需要减少0.34。
但这是代码: TextBox3.Text = Val(TextBox3.Text)-0.34
我该怎么做? 这是VB 6 顺便说一下
答案 0 :(得分:1)
TextBox3.Text = CDbl(TextBox3.Text) - 0.34
因为您的初始值有括号(5.34),所以在操作之前必须将其转换为特定数字。
Val不承认parens中的值为负数。原始示例中的Val()
函数将其转换为0
的方式与val("abcd")
也将返回0的方式相同,因为它假设两者都是字符串。
您可以在即时窗口中测试这些条件,以快速查看结果。
答案 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;