我正在研究这个简单的VB.net应用程序,它允许用户输入一个十进制数字(例如1.23),程序会列出小数点左边和右边的数字以及实际数字的数量在十进制的左边和右边。这是我的代码到目前为止的样子。
Dim imput As String imput = txtEnterNumber.Text Dim D As Integer D = txtEnterNumber.Text.IndexOf(".") txtNumLeft.Text = imput.Remove(D) txtNumRight.Text = imput.Remove(0, D) txtDigitLeft.Text = CStr(imput.Substring(0, D).Length) txtDigitRight.Text = CStr(imput.Substring(D).Length)
当我运行程序时,它包含小数点右边小数点的小数点以及小数点右边的位数。为什么是这样?
谢谢!
答案 0 :(得分:1)
试试这个
Dim imput As String
imput = txtEnterNumber.Text
Dim D As Integer
D = txtEnterNumber.Text.IndexOf(".")
txtNumLeft.Text = imput.Remove(D)
txtNumRight.Text = imput.Remove(0, D + 1)
txtDigitLeft.Text = CStr(imput.Substring(0, D).Length)
txtDigitRight.Text = CStr(imput.Substring(D + 1).Length)
答案 1 :(得分:0)
您的子字符串从小数点开始取一个子字符串,+1
中的SUBSTRING
位置将解决它。此外,您可以使用SPLIT
函数简化代码:
Dim num() as string = txtEnterNumber.Text.Split(".")
txtNumLeft.Text = num(0)
txtDigitLeft.Text = num(0).Length
If(num.Length > 1)Then
txtNumRight.Text = num(1)
txtDigitRight.Text = num(1).Length
Else
txtNumRight.Text = ""
txtDigitRight.Text = 0
End If