title: Float/String values are incorrectly converted to Integers when deserializing to DataTable
body: <p>I'm posting this follow object to asp.net web server through ajax:</p>
  
  <pre><code>$.ajax({
     type: "POST",
     url: "/home.aspx",
     contentType:'application/json',
     data:JSON.stringify({d1:42.00,d2:3.14,d3:'17'})
  });
  </code></pre>
  
  <p>When JSON.Net deserialize the object</p>
  
  <pre><code>JsonConvert.DeserializeObject&lt;DataTable&gt;(stringfied);
  </code></pre>
  
  <p>d2 and d3 as seen as int, the result is:
  d1 = 42, d2 = 3, d3 = 17</p>
  
  <p>the problem is exactly like this post:
  <a href="http://digitalbush.com/2011/04/24/asp-net-mvc3-json-decimal-binding-woes/" rel="nofollow">http://digitalbush.com/2011/04/24/asp-net-mvc3-json-decimal-binding-woes/</a></p>
  
  <p>I couldn't use this article to work around this issue because I'm using web forms.</p>
  
  <p>Any way out?</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>Actualy the string above is wrong, this one reflects the problem, I just reproduced on Linqpad: </p>
  
  <pre><code>JsonConvert.DeserializeObject&lt;DataTable&gt;("[{\"Price\":3},{\"Price\":3.33}]").Dump();
  </code></pre>
  
  <p>The result of datatable is: 3 and 3 not 3 and 3.33</p>
  
  <p>If I use <code>DeserializeObject</code> method, it works properly but I need to use Datatable because I have an generic function on the app to convert Datatable to MSExcel.</p>