[英]Convert a string to decimal in VB.NET
What will be the easiest way to convert a string to decimal? 将字符串转换为十进制的最简单方法是什么?
Input: 输入:
a = 40000.00-
Output will be 输出将是
40,000.00-
I tried to use this code: 我试着使用这段代码:
Dim a as string
a = "4000.00-"
a = Format$(a, "#,###.##")
console.writeline (a)
Use Decimal.Parse
to convert to decimal number, and then use .ToString("format here")
to convert back to a string. 使用
Decimal.Parse
转换为十进制数,然后使用.ToString("format here")
转换回字符串。
Dim aAsDecimal as Decimal = Decimal.Parse(a).ToString("format here")
Last resort approach (not recommended): 最后的方法(不推荐):
string s = (aAsDecimal <0) ? Math.Abs(aAsDecimal).ToString("##,###0.00") + "-" : aAsDecimal .ToString("##,###0.00");
You will have to translate to Visual Basic. 您将不得不翻译为Visual Basic。
Use Decimal.TryParse 使用Decimal.TryParse
Dim a as string
Dim b as Decimal
If Decimal.TryParse(a, b) Then
a = b.ToString("##,###.00")
Else
a = "can not parse"
End If
For VB.NET: 对于VB.NET:
CDec(Val(string_value))
For example, 例如,
CDec(Val(a))
The result will be 40000D
or if the value for a = "400.02" then it will be 400.02D
. 结果将是
40000D
或如果a =“400.02”的值那么它将是400.02D
。
Sub Main()
Dim convert As Func(Of String, Decimal) = _
Function(x As String) Decimal.Parse(x) ' This is a lambda expression.
Dim a = convert("-16325.62")
Dim spec As String = "N"
Console.WriteLine("{1}", spec, a.ToString(spec))
'Console.ReadLine() ' Uncomment to see value in Console output.
End Sub
The following works fine for me, but I don't know whether it is correct or not. 以下工作对我来说很好,但我不知道它是否正确。
double a = 40000.00;
a = double.Parse(a.ToString("##,###.00"));
MessageBox.Show(a.ToString("##,###.00"));
Dim D@ = CDec(TextBox1.Text) '//convert string to decimal with short
This code works, but it is quite long: 这段代码有效,但很长:
Dim a as string
Dim b as decimal
a = "4000.00-"
b = a
If b >= 0 then
console.writeline (b.ToString("##,###.00"))
Else
b = Math.Abs(b)
console.writeline (b.ToString("##,###.00") & "-")
End if
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.