如何在VB6中减少文本框中的值
我是VB的新手,我需要知道它是如何完成的。 已经三年没学VB了,我记不太清楚了。 文本框中有一个值(5.43),需要减少0.34 但代码是这样的: TextBox3.Text=Val(TextBox3.Text)-0.34 我该怎么做?如何在VB6中减少文本框中的值,vb6,textbox,type-conversion,Vb6,Textbox,Type Conversion,我是VB的新手,我需要知道它是如何完成的。 已经三年没学VB了,我记不太清楚了。 文本框中有一个值(5.43),需要减少0.34 但代码是这样的: TextBox3.Text=Val(TextBox3.Text)-0.34 我该怎么做? 这是VB 6顺便说一句,没有尝试过,但可能是: TextBox3.Text=Cdbl(TextBox3.Text)-0.34像这样 TextBox3.Text=Double.Parse(TextBox3.Text)-0.43这将在C语言中工作# 双精度数字=Co
这是VB 6顺便说一句,没有尝试过,但可能是: TextBox3.Text=Cdbl(TextBox3.Text)-0.34像这样 TextBox3.Text=Double.Parse(TextBox3.Text)-0.43这将在C语言中工作# 双精度数字=Convert.ToDouble(textBox1.Text)
数字=数字-.34 以下代码将执行此操作:
TextBox3.Text = Cstr(CDbl(TextBox3.Text) - 0.34)
但是你应该知道发生了什么
文本框不存储,它存储。上面的代码尝试将字符串转换为double,从中减去常量值,然后将其转换回字符串
您应该问问自己,如果文本框中的字符串不是有效数字,会发生什么情况。在上面的代码中,将引发异常。将返回转换是否成功
还是无法在文本框中输入非数字?在这种情况下,安全检查是不必要的,尽管是可取的
执行此操作时需要询问这些问题,否则当值无法转换为您期望的类型时,程序的行为将不可预测
一种更安全的方法是:
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
TextBox3.Text=CDbl(TextBox3.Text)-0.34
因为初始值有括号(5.34),所以在中操作之前,必须将其转换为特定的数字
Val不识别参数中的值为负值。原始示例中的Val()
函数将其转换为0
,与Val(“abcd”)
同样返回0,因为它假定两者都是字符串
您可以在即时窗口中测试这些条件,以快速查看结果
试试这个。。这可能会奏效
Dim TxtValue as Integer
TxtValue = TextBox3.Text
由于TxtValue是整数,小数将自动删除。好的,我已经尝试过了,但它会返回到0。无论如何,谢谢你。帮助?在VB中尝试过,但仍然不喜欢:(我刚刚看到你对成为VB6的评论。是的,对不起。我该怎么办?他无法升级。谢谢你的帮助。那么你对Val(TextBox1.Text)有什么错误?如果我没记错的话,Val应该足够了。我上面的一个人发布了这个…TextBox3.Text=Cstr(CDbl(TextBox3.Text)-0.43)。这看起来也对。谢谢你的回答。但仍然没有。顺便说一下,这是VB6。对于VB6,请使用
CDbl()
进行转换,并使用IsNumeric()
确定字符串是否为数字。我完全不熟悉Visual Basic 6,其中CDbl()是numberic()go?@JamerTheProgrammer我在帖子中添加了VB6的代码示例。但是我不能保证它们能工作。我手头没有VB6编译器,对不起。我很想知道你的示例为什么不能完成你想要的。它在这里似乎工作得很好……我很想知道,你是如何解释最初的问题的,即OP想要完成的是否删除文本框值的小数点后部分?