4

私はお金のフォーマットの例の数学的な結果を変換しようとしています:

Dim num1 As Integer = 2000
Dim num2 As Integer = 500

msgbox(cDbl(num1 + num2))

2500 しか返されません。2,500.00 を返す必要があります。

4

8 に答える 8

9

まず、金銭的な値を処理する場合はDecimal代わりに使用する必要があります。いくつかの丸めの問題があります。DoubleDouble

次に、文字列フォーマットを使用できます:

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)
于 2012-02-13T18:02:29.847 に答える
6

あなた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
于 2012-02-13T17:58:23.360 に答える
3

標準の数値フォーマット文字列

は一般的な数値の書式設定に最適なリソースであり、一番上のリソースは通貨です(これは文化の違いを考慮に入れています)

通貨の場合は「C」または「c」

  • サポート:すべての数値タイプ。
  • 精度指定子:小数点以下の桁数。
  • デフォルトの精度指定子:System.Globalization.NumberFormatInfoによって定義されます。

詳細:通貨( "C")フォーマット指定子。

  • 123.456( "C"、en-US)-> $ 123.46
  • 123.456( "C"、fr-FR)->123,46€</li>
  • 123.456( "C"、ja-JP)->¥123
  • -123.456( "C3"、en-US)->($ 123.456)
  • -123.456( "C3"、fr-FR)->-123,456€</li>
  • -123.456( "C3"、ja-JP)->-¥123.456
于 2012-02-13T17:59:30.233 に答える
2

フォーマットを通貨にしたい場合は、次のいずれかが機能します。

    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"))
于 2012-02-13T19:53:45.210 に答える
0

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..)
于 2012-12-20T17:22:18.883 に答える
-1

String.Formatのドキュメントを見ると、そこに必要なものが見つかります。

于 2012-02-13T17:58:29.667 に答える
-1

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こちらをご覧ください。

于 2012-02-13T19:00:49.087 に答える