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

如何在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的新手,我需要知道它是如何完成的。 已经三年没学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语言中工作#

双精度数字=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想要完成的是否删除文本框值的小数点后部分?