C# formatnumber每次添加逗号如何?
如何强制FormatNumber使用“-”分隔每个“000” 取决于我的用户计算机上的文化 结果看起来像“123456789.1235”或“123456789.1235” 我怎么强迫它C# formatnumber每次添加逗号如何?,c#,vb.net,C#,Vb.net,如何强制FormatNumber使用“-”分隔每个“000” 取决于我的用户计算机上的文化 结果看起来像“123456789.1235”或“123456789.1235” 我怎么强迫它 Dim A As Decimal = "123456789.123456" Dim B As String = FormatNumber(A, 4) 参见.ToString的文档,例如 因此: 请查看如何在上设置选项Strict,因为您已尝试将字符串指定给十进制值。请参阅.ToString的文档,例如 因此
Dim A As Decimal = "123456789.123456"
Dim B As String = FormatNumber(A, 4)
参见.ToString的文档,例如 因此:
请查看如何在上设置选项Strict,因为您已尝试将字符串指定给十进制值。请参阅.ToString的文档,例如 因此:
请查看如何在上设置选项Strict,因为您已尝试将字符串指定给十进制值。好的,有很多方法可以做到这一点。如果您想插入空格,那么@Andrew way将不起作用,但它很简单。这是一种方法,如果您尝试,它将激励您编写自己的代码
Dim a As Decimal = 123456789.123456D
Dim i As Integer = a.IndexOf(".")
Dim b As String = a.Substring(i)
Dim sep As String = " "
For j As Integer = i - 3 To 0 Step -3
If j > 0 Then
b = sep + a.Substring(j, 3) + b
End If
If j < 3 Then
If j = 0 Then
b = a.Substring(0, 3) + b
Else
b = a.Substring(0, j) + b
End If
End If
Next
If i < 3 Then
b = a.Substring(0, i) + b
End If
十进制尺寸a=123456789.123456D
尺寸i为整数=a.IndexOf(“.”)
尺寸b作为字符串=a。子字符串(i)
Dim sep As String=“”
对于j作为整数=i-3到0步骤-3
如果j>0,则
b=sep+a.子串(j,3)+b
如果结束
如果j<3,则
如果j=0,则
b=a.子串(0,3)+b
其他的
b=a.子串(0,j)+b
如果结束
如果结束
下一个
如果我小于3,那么
b=a.子串(0,i)+b
如果结束
注意:
sep=“,”
或”
或任何您想要的和最后的if
语句处理i-3<0
的情况。好吧,有很多方法可以做到这一点。如果您想插入空格,那么@Andrew way将不起作用,但它很简单。这是一种方法,如果您尝试,它将激励您编写自己的代码
Dim a As Decimal = 123456789.123456D
Dim i As Integer = a.IndexOf(".")
Dim b As String = a.Substring(i)
Dim sep As String = " "
For j As Integer = i - 3 To 0 Step -3
If j > 0 Then
b = sep + a.Substring(j, 3) + b
End If
If j < 3 Then
If j = 0 Then
b = a.Substring(0, 3) + b
Else
b = a.Substring(0, j) + b
End If
End If
Next
If i < 3 Then
b = a.Substring(0, i) + b
End If
十进制尺寸a=123456789.123456D
尺寸i为整数=a.IndexOf(“.”)
尺寸b作为字符串=a。子字符串(i)
Dim sep As String=“”
对于j作为整数=i-3到0步骤-3
如果j>0,则
b=sep+a.子串(j,3)+b
如果结束
如果j<3,则
如果j=0,则
b=a.子串(0,3)+b
其他的
b=a.子串(0,j)+b
如果结束
如果结束
下一个
如果我小于3,那么
b=a.子串(0,i)+b
如果结束
注意:sep=“,”
或”
或任何您想要的和最后一条if
语句处理的是@Andrew所说的i-3<0
的情况,但是如果您想要空格(或破折号),您可以将它们插入逗号的位置
Dim a As Decimal = 123456789.123456D
Dim b As String = If(a < 0,"-","") & a.ToString("### ### ### ### ##0.####").Trim(" ")
'Dim b As String = If(a < 0,"-","") & a.ToString("###-###-###-###-##0.####").Trim("-")
十进制尺寸a=123456789.123456D
将b作为字符串调整为If(a<0,“-”,“”)和a.ToString(“###############0.######0.#####Trim(“)
'Dim b As String=If(a<0,“-”,“”)和a.ToString(“##-#-#-#-#-#-#-#-#-#-#-#0.##-#-#-#”)。Trim(“-”)
请注意trim语句。它会删除由于a的长度而可能出现的任何前导字符。不过,我确实喜欢@Subs例程,因为它可以处理一个不受长度限制的任务。这一个你必须放入足够的占位符(#)来处理它。正如@Andrew所说,但是如果你想要空格(或破折号),你可以插入它们来代替逗号
Dim a As Decimal = 123456789.123456D
Dim b As String = If(a < 0,"-","") & a.ToString("### ### ### ### ##0.####").Trim(" ")
'Dim b As String = If(a < 0,"-","") & a.ToString("###-###-###-###-##0.####").Trim("-")
十进制尺寸a=123456789.123456D
将b作为字符串调整为If(a<0,“-”,“”)和a.ToString(“###############0.######0.#####Trim(“)
'Dim b As String=If(a<0,“-”,“”)和a.ToString(“##-#-#-#-#-#-#-#-#-#-#-#0.##-#-#-#”)。Trim(“-”)
请注意trim语句。它会删除由于a的长度而可能出现的任何前导字符。不过,我确实喜欢@Subs例程,因为它可以处理一个不受长度限制的任务。这一个你必须放足够的占位符(#)来处理它。是的,这个操作有点混乱,因为标题上写着“formatnumber添加逗号…”,但在正文的第一行它要求添加“-”。和“,”和“-”在我见过的任何键盘上都不太接近。@AndrewMorton,是的,我试图激励他自己编写代码,而不是寻求简单的帮助。OP有点让人困惑,因为标题是“formatnumber添加逗号…”,但在正文的第一行,它要求添加“-”。和“,”和“-”在我见过的任何键盘上都不太接近。@AndrewMorton,是的,我试图激励他自己编写代码,而不是寻求简单的帮助。a为负数时的修剪(“-”)是什么?@Andrew,你明白了。没有考虑到这一点。也许在它周围写一个if语句,说if a是@Andrew,是的,我的意思是用if代替IIf;今天用VBA编程,我的思维方式不同了。更新了上面的代码。但这是我的最后一个;OP需要采取一些主动。a为负值时的.Trim(“-”)呢?@Andrew,你明白了。没有考虑到这一点。也许在它周围写一个if语句,说if a是@Andrew,是的,我的意思是用if代替IIf;今天用VBA编程,我的思维方式不同了。更新了上面的代码。但这是我的最后一个;OP需要采取一些主动。