我有以下变量。 我需要找到小数点前和小数点后面有多少个数字。
Dim x As Long = 123.456
我尝试将其转换为字符串
Dim xstr As String = x.ToString(x)
Dim searchChar As String = "."
如何显示小数点前的字符数。 即'3'
以及小数点后的字符数。 '3'。
答案 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