在 VB.NET 中将字符串转换为十进制

发布于 2024-11-07 21:16:42 字数 255 浏览 3 评论 0原文

将字符串转换为十进制的最简单方法是什么?

输入:

a = 40000.00-

输出将是

40,000.00-

我尝试使用此代码:

Dim a as string

a = "4000.00-"

a = Format$(a, "#,###.##")
console.writeline (a)

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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

明月松间行 2024-11-14 21:16:42

使用 Decimal.Parse 转换为十进制数,然后使用 .ToString("format here") 转换回字符串。

Dim aAsDecimal as Decimal = Decimal.Parse(a).ToString("format here")

最后的方法(不推荐):

string s = (aAsDecimal <0) ? Math.Abs(aAsDecimal).ToString("##,###0.00") + "-" : aAsDecimal .ToString("##,###0.00");

您必须转换为 Visual Basic。

Use Decimal.Parse to convert to decimal number, and then use .ToString("format here") to convert back to a string.

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.

开始看清了 2024-11-14 21:16:42

使用 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

Use 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
雪若未夕 2024-11-14 21:16:42

对于 VB.NET:

CDec(Val(string_value))

例如,

CDec(Val(a))

结果将为 40000D,或者如果 a 的值 = "400.02",则结果将为 400.02D

For 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.

不寐倦长更 2024-11-14 21:16:42

以下对我来说效果很好,但我不知道它是否正确。

double a = 40000.00;
a = double.Parse(a.ToString("##,###.00"));
MessageBox.Show(a.ToString("##,###.00"));

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"));
感性 2024-11-14 21:16:42
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
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
池木 2024-11-14 21:16:42
Dim D@ = CDec(TextBox1.Text) '//convert string to decimal with short
Dim D@ = CDec(TextBox1.Text) '//convert string to decimal with short
生生漫 2024-11-14 21:16:42

这段代码可以工作,但它很长:

 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

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文