title: How to use NumberFormatInfo to remove parenthesis for negative values
body: <p>We're currently using the following for creating US dollar values in our web application:</p>
  
  <pre><code>string.Format("{0:C0}", dollarValue );
  </code></pre>
  
  <p>In this example, if dollarValue is 145, then we'll see: $145. If it is -145, then we'll see ($145) rather than -$145. Note that for us, dollarValue is a double, but it could be any number-type. I think.</p>
  
  <p>Anyway, what I want is for it to be either $145 or -$145. </p>
  
  <p>Now, according to my research, it might be possible to do this using the NumberFormatInfo class. I can't figure out how to use it, and I can't find any valid example. I did see this question here: <a href="https://stackoverflow.com/questions/3866796/c-sharp-creating-a-custom-numberformatinfo-to-display-free-when-a-currency-val">C# creating a custom NumberFormatInfo to display &quot;Free&quot; when a currency value is $0.00</a> but the example from MSDN linked to from this question seems a bit different from what I really want to do. </p>
  
  <p>I realize, I will need to do something of the following:</p>
  
  <pre><code>double dollarValue = -145d;
  string myMoney = dollarValue.ToString( "C0", someIFormatProvider );
  </code></pre>
  
  <p>where someIFormatProvider is likely of type NumberFormatInfo. Now, what I've done is this:</p>
  
  <pre><code>NumberFormatInfo ni = new NumberformatInfo();
  ni.CurrencyNegativePattern = 1; // The value 1 should mean not to use parenthesis
  string myMoney = dollarValue.ToString( "C0", ni );
  </code></pre>
  
  <p>...and I get an "Instance is Read-Only" exception. While the "documentation" for the CurrencyNegativePattern property says you can SET and GET the value, apparently, you can't. Also, NumberFormatInfo is a sealed class. I can't easily create a new class based off it and override the value.</p>
  
  <p>I'm at a loss as to how to deal with this. Right now, my workaround is to just negate my negative value and have a positive result that I do the <code>string.Format(...)</code> again. Yes, I realize there is no negative sign in front of this, but, of course, that's easily resolved by adding a "-" in front of the result as needed.</p>
  
  <p>Would someone be able to provide me with a working example of how to effectively use the NumbefFormatInfo class correctly in this situation? Thanks.</p>