title: int.Parse on negative number results in exception
body: <p>This line of code:</p>
  
  <pre><code>int.Parse("-1");
  </code></pre>
  
  <p>Results in a FormatException that says "Input string was not in the correct format" when i run it on a device. On the emulator it works just fine. I've tested this with a bunch of devices, and the only one that is working as intended (i.e. returns an int with value -1) is the Samsung Galaxy Nexus, running android 4.2.1. All these devices generates an exception:</p>
  
  <ul>
  <li>Google Nexus 7 (4.3)</li>
  <li>Samsung S3 (4.1.2)</li>
  <li>Samsung Galaxy Tab (4.0.4)</li>
  <li>LG P970 (2.2.2)</li>
  <li>HTC Sensation (2.3.4)</li>
  </ul>
  
  <p>I also tried to download the app <a href="https://play.google.com/store/apps/details?id=animaonline.cshell.free&amp;hl=en" rel="nofollow noreferrer">C#Shell</a> from playstore on a device, and enter the line above, the result is the same:</p>
  
  <p><img src="https://i.stack.imgur.com/w1AXA.png" alt="C#Shell screenshot"></p>
  
  <p>Do anyone know why this happens, or what can be done to resolve this issue?</p>
  
  <p><strong>Update:</strong></p>
  
  <p>The reason i'm investigating this issue is because our app is requesting a JSON from our servers, and it contains a bunch of negative numbers. We then use <a href="https://github.com/ServiceStack/ServiceStack.Text" rel="nofollow noreferrer">ServiceStack</a> to parse the JSON, which results in all negative numbers becoming 0. ServiceStack has no way of setting a FormatSpecifier.</p>
  
  <p><code>int.Parse("-1", CultureInfo.InvariantCulture)</code> seems to work as intended on all devices regardless of what language they are using, but <code>int.Parse("-1", new CultureInfo("sv-SE"))</code> does not.</p>
  
  <p>I find this a bit odd, since <code>int.Parse("-1", new CultureInfo("sv-SE"))</code> works on other platforms where we're not using xamarin or mono.</p>