質問

私を利用することにしたのだろう文字列です。フォーマット("{0:c}",somevalue)クライアントまで、フルのC#でも大事などのように実施するかを設定するための出力もます。ここでの私のニーズ:

  1. 0出力白
  2. 1.00力$1.00
  3. 10.00力$10.00
  4. 100.00出力ドル100.00
  5. 1000.00出力は$1,000個を上限とします。00

された文字列になります。フォーマット("{0:c}",somevalue)がゼロ以下の値を出力し$0.00ないんです。この文字列です。形式("{0:$0,0.00;$(0,0.00);#}", somevalue)、1.0出力し$01.00.文字列になります。形式("{0:$0.00;$(0.00);#}", somevalue)の作品は、ほとんどの場合がsomevalueは1000.00の出力は$1000.00.

ある形式のい場合は、当社にお問い合わすべての5例しますのでご注意ください。▼すべての文書を読んだ内容を基礎としないタッチにこの種のシナリオ。

役に立ちましたか?

解決

あなたが使用している場合は、

string.Format("{0:$#,##0.00;($#,##0.00);''}", value)

あなたはゼロ値のために「」を取得し、他の値も適切にフォーマットする必要があります。

他のヒント

このような何かを試してみてください。

String currency = (number == 0) ? String.Empty : number.ToString("c");

あなたは一貫してあなたの通貨の値のすべてに対して同じデータ型を使用している場合によっては、あなたの場合は常に満たされるようになるだろう拡張メソッドを書くことができます。たとえば、あなたは、decimal型を使用している場合:

public static string ToCurrencyString (this decimal value)
{
  if (value == 0)
    return String.Empty;
  return value.ToString ("C");
}

ここで素晴らしいこのですこのデータをまとめたもので、あなたが有用見つけるかもしれない参照:のhttp://blog.stevex .NET /文字列の書式・イン・CSHARP /

「C」通貨形式を使用すると、0のためのブランクを必要とするまで、ここで素晴らしいです0のためにあなたに空白を与える私が使用するものと同様の二つの方法は、上述した1、次のとおりです:

// one way
string.Format("{0:$#,##0.00;($#,##0.00);''}", somevalue)

// another way
somevalue.ToString("$#,##0.00;($#,##0.00);''")
あなたのコードのそのスタイル(私がそうであるように)のような場合は、

第2の技術は、より多くの「流暢」と感じています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top