查找字符前后的值数

时间:2014-01-27 14:27:35

标签: vb.net string long-integer

我有以下变量。 我需要找到小数点前和小数点后面有多少个数字。

    Dim x As Long = 123.456

我尝试将其转换为字符串

    Dim xstr As String = x.ToString(x)
    Dim searchChar As String = "."

如何显示小数点前的字符数。 即'3'

以及小数点后的字符数。 '3'。

4 个答案:

答案 0 :(得分:2)

您可以拨打String.Split,如下所示:

Dim x As Double = 123.456
Dim xstr As String = x.ToString()
Dim searchChar As String = "."
Dim parts() As String = xstr.Split({searchChar}, StringSplitOptions.None)
Dim firstLength As Integer = parts(0).Length
Dim secondLength As Integer = parts(1).Length

答案 1 :(得分:1)

另一种可能的解决方案,基于String.Substring()

Dim x As Double = 123.456

Dim xstr As String = x.ToString(NumberFormatInfo.InvariantInfo)

Dim beforeDecimalSeparator As Integer = xstr.Length

Dim afterDecimalSeparator As Integer = 0

Dim decimalSeparatorPosition As Integer = xstr.IndexOf("."c)

If decimalSeparatorPosition > -1 Then

    beforeDecimalSeparator = xstr.Substring(0, decimalSeparatorPosition).Length

    afterDecimalSeparator = xstr.Substring(decimalSeparatorPosition + 1).Length

End If

答案 2 :(得分:0)

以你的方式:

xstr.Substring(xstr.IndexOf("."c) + 1)

但您不需要转换为String。

Dim y = x Mod 1

答案 3 :(得分:0)

您也可以使用IndexOf来解决此问题。

Dim x As Double = 123.456
Dim xstr As String = x.ToString()
Dim mIndex As Integer = xstr.IndexOf(".")
Dim firstLength  As Integer = mIndex;
Dim secondLength As Integer = (xstr.Length - mIndex) -1