title: Converting a string with commas to double and int are different. Why?
body: <p>I am migrating from an old MFC GUI to C#.</p>
  
  <p>I was building a Form-based GUI when I've got an unexpected exception converting a string to an integer type. I assumed it would work the same as converting string to double.</p>
  
  <pre><code>string str = "1,000";
  double dthou = Convert.ToDouble(str);   // OK
  int ithou = Convert.ToInt32(str);       // raises an exception
  </code></pre>
  
  <p>Conversion to double gives correct value: 1000.0.
  For int conversion, I was able to get a solution : <a href="https://stackoverflow.com/questions/1824326/convert-toint32-a-string-with-commas">Convert.ToInt32() a string with Commas</a>.</p>
  
  <p>But I am curious if there were any reason behind this.
  Or, am I missing something?</p>
  
  <p>I was able to find a similar, but not exactly a duplicate question :
  <a href="https://stackoverflow.com/questions/2094254/number-parsing-weirdness">Number parsing weirdness</a></p>
  
  <p>[EDIT] after learning about the culture issue.</p>
  
  <p>I am in a kind of a culture-shock because until now, in Korea, both floating point number and integer numbers are expressed with "," for thousands group and "." for decimal point (at least in the real world, in Korea, I mean, I think... ).
  I guess I will have to accept current settings of MS Visual Studio and carry on.</p>
  
  <p>[EDIT2] after sleeping over this issue.</p>
  
  <p>I think it's more of the inconsistent handling of the formatted string.  ToDouble accepts strings with thousands separator (in my culture, comma), but ToInt32 does not.  If <code>ToDouble</code> is <code>float | allowThousands</code>, then why could'nt <code>ToInt32</code> have been <code>integer | allowThousands</code> is what I am asking.</p>