在VB.NET中将字符串转换为十进制
将字符串转换为十进制的最简单方法是什么 输入:在VB.NET中将字符串转换为十进制,vb.net,string,format,decimal,Vb.net,String,Format,Decimal,将字符串转换为十进制的最简单方法是什么 输入: a = 40000.00- 输出将是 40,000.00- 我尝试使用以下代码: Dim a as string a = "4000.00-" a = Format$(a, "#,###.##") console.writeline (a) 使用Decimal.Parse转换为十进制数,然后使用.ToString(“此处的格式”)转换回字符串 Dim aAsDecimal as Decimal = Decimal.Parse(a).ToS
a = 40000.00-
输出将是
40,000.00-
我尝试使用以下代码:
Dim a as string
a = "4000.00-"
a = Format$(a, "#,###.##")
console.writeline (a)
使用
Decimal.Parse
转换为十进制数,然后使用.ToString(“此处的格式”)
转换回字符串
Dim aAsDecimal as Decimal = Decimal.Parse(a).ToString("format here")
最后手段(不推荐):
strings=(aAsDecimal以下内容对我来说很好,但我不知道它是否正确
double a = 40000.00;
a = double.Parse(a.ToString("##,###.00"));
MessageBox.Show(a.ToString("##,###.00"));
使用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
此代码有效,但相当长:
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
对于VB.NET:
CDec(Val(string_value))
比如说,
CDec(Val(a))
结果将是40000D
,或者如果a=“400.02”的值是400.02D
,那么它将是400.02D我尝试了这个方法,但是我想要的结果是负的,应该在末尾。将a作为字符串a=“4000.00-”a=Decimal.Parse(a).ToString(“###,######.00”)console.writeline(a)'result 4000.00还有一种未被推荐的方法:(a不走运。我会用另一种方法来尝试。一旦我得到它,我会把它贴在这里。谢谢你的回复。我最后的方法会奏效。虽然不完全优雅。当我转换到VB时,我得到一个错误Dim s作为String=If((a<0),Math.Abs(a)。ToString(“##,######0.00”)&“-”,a.ToString(“###,#####0.00”))中间行是不必要的。您将双精度转换为字符串,然后再将其解析回双精度。现在,如果您尝试截断额外的小数位数(即:40000.0001到40000.00),这将起作用,但数学四舍五入(a,2)将更有效。
Dim D@ = CDec(TextBox1.Text) '//convert string to decimal with short
CDec(Val(a))
Dim D@ = CDec(TextBox1.Text) '//convert string to decimal with short