web-dev-qa-db-ja.com

VB.NETで文字列を10進数に変換する

文字列を10進数に変換する最も簡単な方法は何ですか?

入力:

a = 40000.00-

出力は

40,000.00-

私はこのコードを使用しようとしました:

Dim a as string

a = "4000.00-"

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

_Decimal.Parse_を使用して10進数に変換し、次に.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に変換する必要があります。

14
Slappy

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
5
chrissie1

VB.NETの場合:

CDec(Val(string_value))

例えば、

CDec(Val(a))

結果は40000Dまたはa = "400.02"の場合、400.02D

3
Rohit

以下は私にとってはうまくいきますが、それが正しいかどうかはわかりません。

double a = 40000.00;
a = double.Parse(a.ToString("##,###.00"));
MessageBox.Show(a.ToString("##,###.00"));
2
Dorababu Meka
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
2
devinbost
Dim D@ = CDec(TextBox1.Text) '//convert string to decimal with short
1
Paul A. Quiamco

このコードは機能しますが、かなり長いです:

 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
0
user709787