How to format signed currency
<p>I have the following scenario. A decimal value needs to be displayed as a currency but include the appropriate currency symbol and sign, thus:</p>

<ol>
<li>-45.23 is displayed as -£45.23</li>
<li>45.23 is displayed as +£45.23</li>
</ol>

<p>The currency sign must come from <code>System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol</code>. I have this, but I can't find a way to swap the sign and currency symbol:</p>

<pre><code>string s1 = string.Format(@"{1}{0:+#,##0.00;-#,##0.00}", 45.09M, 
    System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol);
Console.WriteLine(s2);
string s2 = string.Format(@"{1}{0:+#,##0.00;-#,##0.00}", -45.09M, 
    System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol);
Console.WriteLine(s2);
</code></pre>

<p>Outputs:</p>

<pre><code>£+45.09
£-45.09
</code></pre>

<p>I want:</p>

<pre><code>+£45.09
-£45.09
</code></pre>

<h1>UPDATE</h1>

<p>Someone posted another answer regarding the <a href="http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencypositivepattern.aspx" rel="nofollow"><code>NumberFormatInfo.CurrencyPositivePattern</code></a> Property, which looked promising, especially since the but it appears that Microsoft overlooked the possibility that the <a href="http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencynegativepattern.aspx" rel="nofollow"><code>NumberFormatInfo.CurrencyNegativePattern</code></a> Property contains various options for the presentation of the negative sign. However, the <code>NumberFormatInfo.CurrencyPositivePattern</code> does not include an option to include the positive sign! Damn. Thanks to whoever it was that mentioned it, but deleted their comments. I learnt someone nevertheless.</p>
