title: How can I display culture-specific native digits instead of Arabic numerals?
body: <p>I want to convert a numeric value to a string, displaying culture-specific digits. For example, the Dari language used in Afghanistan (culture name "prs-AF") uses <a href="http://en.wikipedia.org/wiki/Eastern_Arabic_numerals" rel="noreferrer">Eastern-Arabic numerals</a> instead of the <a href="http://en.wikipedia.org/wiki/Arabic_numerals" rel="noreferrer">Arabic numerals</a> used in most Western cultures (<code>0,1,2,3,4,5,6,7,8,9</code>).</p>
  
  <p>When examining the CultureInfo class built into the Framework, it lists the correct native digits (screenshot taken from output in LinqPad):</p>
  
  <p><img src="https://i.stack.imgur.com/LMvPT.png" alt="linqpad output"></p>
  
  <pre><code>CultureInfo.CreateSpecificCulture("prs-AF").NumberFormat.NativeDigits
  </code></pre>
  
  <p>However, when trying to convert a number to a string to display in that culture, I am not getting the native digits:</p>
  
  <p><img src="https://i.stack.imgur.com/7zu33.png" alt="linqpad output"></p>
  
  <pre><code>var number = 123.5;
  var culture = CultureInfo.CreateSpecificCulture("prs-AF");
  Thread.CurrentThread.CurrentUICulture = culture;
  Thread.CurrentThread.CurrentCulture = culture;
  var text = number.ToString(culture);
  Console.WriteLine(text);
  </code></pre>
  
  <p>Can anyone tell me how to display the native digits?</p>