问题描述
PrivateSubTextBox1_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTextBox1.TextChangedDimgjAsDouble=Me.TextBox1.Textremgj是当前股价,问题就出现在这里,当我输入比如5.27的时候,不会出现问题,但是,当我把里面的内容全部删除掉就会出现“当从一个数字执行强制转换时,值必须小于一个无限大的数字”这样提示的报错。报错后面有截图TryMe.Label2.Text=Math.Round(2.7/gj*0.1*100,2)&"%"CatchMe.Label2.Text="当前股价不能为0哦!"rem我是用label2.text动态的显示股息率。EndTryEndSub
解决方案
解决方案二:
DimgjAsDouble=Me.TextBox1.Text这句话当textbox为空时,gj=0,然后后面的除数为0....建议你判断一下textbox是否为空,为空则不进行下一步处理
解决方案三:
引用1楼u011266608的回复:
DimgjAsDouble=Me.TextBox1.Text这句话当textbox为空时,gj=0,然后后面的除数为0....建议你判断一下textbox是否为空,为空则不进行下一步处理
IfMe.TextBox1.Text<>""ThenDimgjAsDouble=Me.TextBox1.TextMe.Label2.Text=Math.Round(2.7/gj*0.1*100,2)&"%"改成这样的就可以了。是如你说的一样。
解决方案四:
加上iftextbox1.text<>""then...你的代码endif
解决方案五:
建议写成gj=val(textbox1.text)
gj为双精度数据类型,而textbox1.text当中的内容可能出现空值,或字符串等
解决方案六:
引用楼主u011331156的回复:
PrivateSubTextBox1_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTextBox1.TextChangedDimgjAsDouble=Me.TextBox1.Textremgj是当前股价,问题就出现在这里,当我输入比如5.27的时候,不会出现问题,但是,当我把里面的内容全部删除掉就会出现“当从一个数字执行强制转换时,值必须小于一个无限大的数字”这样提示的报错。报错后面有截图TryMe.Label2.Text=Math.Round(2.7/gj*0.1*100,2)&"%"CatchMe.Label2.Text="当前股价不能为0哦!"rem我是用label2.text动态的显示股息率。EndTryEndSub
在开发中,“报错”是一个挺令人兴奋的事情!因为这样你就能知道自己的目标应该如何更安全地前进,根据报错来知道下一步做什么。下一步,你就应该在第一行就写ifMe.TextBox1.Text.trim==string.emptythen
这样的语句,来让程序变得正确。
解决方案七:
把程序发布给用户时(这是使用Release方式编译的),“报错”是一个非常丢人的事情。但是在开发阶段,反而应该循着“报错”来决定下一步首先该做什么开发工作。测试时会千方百计让程序“报错”,而且会把try...catch的用条件编译方式来禁用掉,让程序尽可能报错。开发时报错是好事,而不是坏事。你不应该一“报错”就求人(例如在csdn论坛发帖),应该先自己研究。
解决方案八:
通常我会问程序员:Release编译时跟Debug编译时,代码有什么不同?DEBUG模式下,合格的程序员欢迎bug立刻引起调试器进入,而不是用try...catch来隐藏问题。