2017-09-19 5 views
-2

小文字をフォーマットして、+記号または - 記号の両方の通貨として表示する方法はありますか?例えば小文字を通貨としてプラス記号とマイナス記号で書式設定するC#

+ $ 5.00(プラスゼロより大きいために署名)
$ 0.00(ゼロのための符号なし)
- $ 5.00(マイナスゼロ未満のための記号)

次は何をして

var formattedprice = $"{price:+0;-#}" 

通貨には通常C0を、番号にはN0を使用します。

+1

国際的なアプリケーションの場合は、すべての通貨記号が数値の前に表示されないことに注意してください。 – xxbbcc

答えて

4
class Program 
{ 
    static void Main(string[] args) 
    { 
     var pos = 5m; 
     var zero = 0m; 
     var neg = -5m; 

     var format = "+$0.00;-$0.00;$0.00"; 

     Console.WriteLine(pos.ToString(format)); 
     Console.WriteLine(zero.ToString(format)); 
     Console.WriteLine(neg.ToString(format)); 
    } 
} 

と出力が

+$5,00 
$0,00 
-$5,00 

であり、あなたが応じたフォーマットを変更する必要がありますので、@のxxbbccさんのコメント通り、通貨記号の位置は、ロケールに依存します。

+0

通貨記号だけでなく、負の書式設定 - 単純な例として、これは問題ありませんが、国際的な書式設定を処理する場合は、負の数値の表示方法(マイナス記号、括弧など)カスタム書式文字列を使用しますが、それらのどれもあなたのために処理されません。 https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings#SectionSeparator – xxbbcc

+0

@xxbbcc確かに、私がTSの問題を理解する限り、フォーマットをカスタマイズすることに問題がありました。それ以外の場合は、C2が提供するシステムのデフォルトに準拠する方がはるかに簡単です。私はかなりTSが前述の機能性を認識していることを確信していますが、何か非標準的なものが必要なので、その疑問があります。 –

+1

確かに、私は完全性のためにそれを指摘しました。 – xxbbcc

関連する問題