我有一个包含数字的字符串是一些特定的格式。我有另一个元素的样式,我想要的是将此字符串转换为其他格式字符串。例如:
myStyle As System.Globalization.NumberStyles = NumberStyles.AllowThousands
myString As String = "9,000,000"
myResult As String = ???????
我希望myResult
字符串为NumberStyles.Number
样式。即myResult="9000000"
。
请注意,样式可以是任何不只是AllowThousand
的样式...是否有人知道任何内置的Sub在样式之间进行转换?
答案 0 :(得分:1)
NumberStyles
枚举可用作Parse
和TryParse
方法的参数(f.e。Decimal.TryParse
)。它们无法在ToString
中使用。
如果您想控制号码转换为String
的方式,请使用适当的NumberFormatInfo
或格式字符串(custom或standard)。例如:
Dim inputStyle As System.Globalization.NumberStyles = NumberStyles.AllowThousands
Dim outputStyle As System.Globalization.NumberStyles = NumberStyles.Number
Dim myString As String = "9,000,000"
Dim result As String
Dim dec As Decimal
If Decimal.TryParse(myString, inputStyle, NumberFormatInfo.CurrentInfo, dec) Then
Dim format As NumberFormatInfo = DirectCast(NumberFormatInfo.CurrentInfo.Clone(), NumberFormatInfo)
format.NumberGroupSeparator = ""
result = dec.ToString(format)
End If
请注意,只有当前文化使用,
作为群组分隔符时(例如"de-DE"
或"en-UK"
),才能使用上述内容。
在这种情况下,简单的Decimal.ToString
会得到相同的结果:
If Decimal.TryParse(myString, inputStyle, NumberFormatInfo.CurrentInfo, dec) Then
result = dec.ToString()
End If