2016-02-28 50 views
0

所以我正在爲自己的項目工作。在字符串格式化程序中不期望輸出c#

我現在用的string.formatter

bon = bon + String.Format("{0,-2} X {1,-10} {1,5}", hoeveelheid[i], frieten[i], hulp); 

中的問題奠定了 「hulp」 這是一個double。但它沒有顯示在輸出中。而是輸出與frieten [i]相同的輸出。

像這樣:

4 X克萊恩克萊恩

輸出需要像:`

4X克萊恩€15,00

`

+0

在第三個參數的指數是2而不是1'{1,5}' –

+0

請注意,貨幣計算應始終使用「小數」而不是「雙」進行。 – JSQuareD

回答

1

您只需要將{1,5}更改爲{2,5}即可。

此外,如果它是一個雙倍值,您可能需要格式化爲The "C" format specifier

您可以創建自己的自定義NumberFormatInfo並將您的double格式設置爲;

var nfi = new NumberFormatInfo() 
{ 
    CurrencySymbol = "€", 
    CurrencyDecimalSeparator = ",", 
    CurrencyPositivePattern = 0, 
    CurrencyDecimalDigits = 2 
}; 

bon = bon + String.Format("{0,-2} X {1,-10} {2,5}", 
          hoeveelheid[i], frieten[i], hulp.ToString("C", nfi)); 

順便說一句:最後格式

變化來自:What is the best data type to use for money in c#?

+0

我現在感覺很蠢....謝謝 – user3574537

+0

@ user3574537很高興幫助。 –

1

你重複你的第二個變量兩次{0,-2} X {1,-10} {1,5}{0,-2} X {1,-10} {2,5}