私はお金のフォーマットの例の数学的な結果を変換しようとしています:
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
msgbox(cDbl(num1 + num2))
2500 しか返されません。2,500.00 を返す必要があります。
私はお金のフォーマットの例の数学的な結果を変換しようとしています:
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
msgbox(cDbl(num1 + num2))
2500 しか返されません。2,500.00 を返す必要があります。
まず、金銭的な値を処理する場合はDecimal
代わりに使用する必要があります。いくつかの丸めの問題があります。Double
Double
次に、文字列フォーマットを使用できます:
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
Diml value As Decimal = CDec(num1 + num2)
Dim formattedValue As String = String.Format("{0:n}", value)
msgbox(formattedValue)
あなたMsgBox
はあなたに価値を示します、しかしあなたがそれを求めていないので、それはそれをフォーマットしていません。
もう少し進んで結果を文字列としてフォーマットすると、希望するフォーマットが得られます。例:
Dim num1 As Double = 2000
Dim num2 As Double = 500
Dim sum As Double = num1 + num2
MsgBox(sum.ToString("0.00")) ' Adjust format string to suit
は一般的な数値の書式設定に最適なリソースであり、一番上のリソースは通貨です(これは文化の違いを考慮に入れています)
通貨の場合は「C」または「c」
詳細:通貨( "C")フォーマット指定子。
フォーマットを通貨にしたい場合は、次のいずれかが機能します。
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
MsgBox(String.Format("{0:C2}", num1 + num2))
または
Dim num1 As Integer = 2000
Dim num2 As Integer = 500
Dim sum As Integer = num1 + num2
MsgBox(sum.ToString("C2"))
formatcurrency to double
value = 1500,20 TL
ctype(value, double)
return 1500,20
double をフォーマットする通貨
サンプル
value = 1500,1995
formatcurrency(value,2)
return = 1500,20 TL moneysembol (TL , $ ,vs..)
String.Formatのドキュメントを見ると、そこに必要なものが見つかります。
Integer
通常、通貨値のデータ型としては使用しません。Double
代わりに使用してください。
出力文字列を通貨値としてフォーマットする方法はたくさんあると思います。
私が知っている方法は、Rowland Shaw によって既に説明されています。だから私は他のものにスキップします。という組み込み関数FormatCurrency
です。システムで定義されている通貨記号を加えた通貨値として文字列を出力します。
Dim num1 As Double = 2000
Dim num2 As Double = 500
Dim ans As Double = num1 + num2
MessageBox.Show(FormatCurrency(ans))
の詳細についてはFormatCurrency
、こちらをご覧ください。