确定小数位数

时间:2014-03-10 03:14:57

标签: vb.net decimal

我正在研究这个简单的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)

当我运行程序时,它包含小数点右边小数点的小数点以及小数点右边的位数。为什么是这样?

谢谢!

2 个答案:

答案 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