5

私は次の行を持っています:

//Send Email
clntMailBody = clntMailBody + "Order Total: " + String.Format("{0:C}", strOrderTotal + "\n");

番組を見る:

String.Format("{0:C}", strOrderTotal + "\n")    "35\n"  string

ただし、「35」しか出力されません。「$35.00」を期待していましたなぜこれが意図したとおりに機能しないのですか?

ありがとう

4

9 に答える 9

10

strOrderTotalは文字列だと思いますか?{0:C}10進数またはint型でのみ機能すると思います。

于 2012-04-25T21:02:48.273 に答える
5

私はこれらの答えのすべてを信じることができず、誰もこれについて言及していません、あなたのコードをに変更してください

clntMailBody = clntMailBody + "Order Total: " + String.Format("{0:C}", strOrderTotal) + "\n";

そして、それがあなたの問題を解決するかどうかを確認してください、しかしそれを行うためのより良い方法は

clntMailBody = String.Format("{0}Order Total: {1:C}\n", clntMailBody, strOrderTotal);

何が起こっているかを確認する方がはるかに簡単で、文字列の連結の多くを削除できます。

さらに良い解決策を書き直したいのであれば、次のようになります:(例を示すためにいくつかのロジックを作成しました)

StringBuilder clntMailBody = new StringBuilder();

clntMailBody.AppendLine("Some Fixed body Text")

foreach(string lineItem in Invoice)
{
    clntMailBody.AppendLine(lineItem);
}

clntMailBody.AppendFormat("Order Total {0:C}", strOrderTotal).AppendLine();

return clntMailBody.ToString();
于 2012-04-25T21:34:20.450 に答える
2

あなたはの宣言を示していませんstrOrderTotalが、その名前で私はそれがすでにであると仮定していstringます。すでに文字列であるため、フォーマットは機能しません。

フォーマットを機能させたい場合は、注文の合計を数値として渡す必要があります-できればdecimal

于 2012-04-25T21:02:40.303 に答える
2

文字列だから。

文字列をフォーマットしようとすると、文字列が返されます。

通貨としてフォーマットするには、数値が必要です。

Cフォーマット指定子は、MSDNの[標準の数値フォーマット文字列]ページで定義されていることがわかります。「文字列」ではなく数値。

于 2012-04-25T21:02:53.053 に答える
2

strOrderTotalは文字列だと思いますか?10進数、または2倍などである必要がありました

于 2012-04-25T21:02:53.093 に答える
2

それは文字列だと思いstrOrderTotalます。doubleやDecimalなどの数値タイプを使用する必要があります。

于 2012-04-25T21:02:53.950 に答える
2

(変数名に基づいてstrOrderTotal)合計はすでに文字列であるように見えます。「C」形式の指定子は、数値を通貨形式に変換します。すでに文字列になっているものではありません。

したがって、文字列を通貨として手動でフォーマットするか、注文合計が最初に文字列に変換されたとき(に保存されているときstrOrderTotal)に通貨フォーマットを適用する必要があります。

于 2012-04-25T21:03:49.800 に答える
1

strOrderTotalが文字列の場合、このコードを使用して通貨用にフォーマットできます

clntMailBody = clntMailBody + "Order Total: " + String.Format("{0:C}", decimal.Parse(strOrderTotal) + "\n");
于 2012-04-25T21:08:27.483 に答える
0

文字列を通貨形式で表示するには:

StringBuilder sb= new StringBuilder("Your total amount is ");
sb.AppendFormat("{0:C} ", 25 );
Console.WriteLine(sb);

出力:

合計金額は$25.00です

于 2016-12-22T03:00:23.350 に答える