2016-12-08 54 views
0

大家好。在特定字符(VB代码)后添加字符串中的空格

Dim txt1 As Double = Convert.ToDouble(TextBox1.Text)/100 
    Dim txt2 As Double = Convert.ToDouble(TextBox2.Text) 
    Dim txt3 As Double = Convert.ToDouble(TextBox3.Text) 
    Dim txtResult As Double = Convert.ToDouble(TextBox4.Text) 

    Dim result As Double = txt1 * txt2 * txt3 
    TextBox4.Text = result 

正如你看到的,我得到我的结果,这取决于在用户类型。所以我有一个特定字符后添加一个空格。 Textbox14.text(0)< ---在这之后,我想要我的空间。这是因为,值超过999后,应该输出1 000而不是1000.非常感谢您提供任何有用的帮助,我真的无处不在,我什么都找不到。

回答

0

你在说分组分隔符。 Custom Numeric Format Strings

您可以使用.ToString()方法并以格式定义组分隔符。

TextBox4.Text = result.ToString("0,0.000") 

将根据本地系统的语言/区域设置使用不同的分隔符。

您可以定义custome分离器手动

var cultureInfo = new System.Globalization.CultureInfo("en-US"); 
var numberInfo = cultureInfo.NumberFormat; 
numberInfo.NumberGroupSeparator = " "; 

TextBox4.Text = result.ToString("0,0.000", numberInfo) 
+0

哇!谢谢你,这其实很简单!祝你有美好的一天! – Vraces

0

如果我得到它的权利,你要每3个字符的空间,对不对? 喜欢1 000 000? 试试这个:

Dim result As String, str As String, ret As String 
Dim i As Integer 
Dim arr As Char() 
'your text to space 
result = "10000000" 
'reverte so we start with the end 
result = StrReverse(result) 
i = 0 
ret = "" 
' make a char array which each char is an own array element 
arr = result.Take(result.Length).ToArray 
'iterate through all elements 
For Each str In arr 
    ' skip the first element . 
    ' only add a space every 3 elements 
    If (i <> 0) And (i Mod 3 = 0) Then 
     ret = ret + " " 
    End If 
    ret = ret + str 
    i = i + 1 
Next 
' revers again the output 
ret = StrReverse(ret) 
MsgBox(ret) 
相关问题