如何在VB.NET中根据用户输入自动设置小数点?

如何在VB.NET中根据用户输入自动设置小数点?,vb.net,Vb.net,我有一个由用户接收的文本框号码。 问题是我想格式化此文本框,将数字显示为下一个面: 15000.25 >> 15,000.25 我使用了FormatNumber函数: dim x as double x = FormatNumber(textbox1.text,2) textbox1.text = x 但这里的问题是我想保留用户输入的小数位数,例如: 15000.225>>15000.225不是15000.22 0.00083>>0.00083不是0 我希望我的问题很清楚。试试这个: Priv

我有一个由用户接收的文本框号码。 问题是我想格式化此文本框,将数字显示为下一个面: 15000.25 >> 15,000.25 我使用了FormatNumber函数:

dim x as double
x = FormatNumber(textbox1.text,2)
textbox1.text = x
但这里的问题是我想保留用户输入的小数位数,例如:

15000.225>>15000.225不是15000.22 0.00083>>0.00083不是0

我希望我的问题很清楚。

试试这个:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim dbl As Double
    If Double.Parse(TextBox1.Text, dbl) Then
        Dim parts() As String = dbl.ToString.Split(".")
        Dim strDecimalPattern As String = ""
        If parts.Length = 2 Then
            strDecimalPattern = New String("#", parts(1).Length)
        End If
        Dim strPattern As String = "{0:#,##0" &
            If(strDecimalPattern <> "", ".", "") &
            strDecimalPattern & "}"
        TextBox1.Text = String.Format(strPattern, dbl)
    End If
End Sub
Private子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
双精度dbl
如果是Double.Parse(TextBox1.Text,dbl),那么
Dim parts()作为字符串=dbl.ToString.Split(“.”)
Dim strDecimalPattern As String=“”
如果parts.Length=2,则
strDecimalPattern=新字符串(“#”),第(1)部分。长度)
如果结束
Dim strPattern As String=“{0:#,##0”&
如果(标准CIMalPattern“”,“”)&
strDecimalPattern&“}”
TextBox1.Text=String.Format(strPattern,dbl)
如果结束
端接头

我找到了下一个解决方案:

Dim xStr As String = CStr(Me.Text)
Dim xCount As Integer = Len(Split(xStr, ".")(1))
Me.textbox1.Text = FormatNumber(Me.Text, xCount)
这对我有用。
谢谢你,虽然愚蠢但很简单:
dim result=[Double].ToString(“N30”,CultureInfo.InvariantCulture)。TrimEnd(“0”c)
看?@Jimi请解释一下@Idle\u注意,我尝试了其中的一种格式,但什么也没发生,我不想被精确的小数位数所束缚。我们是在文本框中处理一个数字,还是处理多个数字?如果输入中没有“.”,这将失败。你应该检查一下。。。