Шесть лет спустя, это просто пишет «123,5», что является той же самой проблемой, которую ОП пытался исправить. Вопрос в том, как написать это в родных цифрах.

у преобразовать числовое значение в строку с отображением специфических для культуры цифр. Например, язык дари, используемый в Афганистане (культурное название «prs-AF»), используетВосточно-арабские цифры вместоарабские цифры используется в большинстве западных культур (0,1,2,3,4,5,6,7,8,9).

При проверке класса CultureInfo, встроенного в Framework, в нем перечислены правильные собственные цифры (снимок экрана, полученный из вывода в LinqPad):

CultureInfo.CreateSpecificCulture("prs-AF").NumberFormat.NativeDigits

Однако при попытке преобразовать число в строку для отображения в этой культуре я не получаю исходные цифры:

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);

Может кто-нибудь сказать мне, как отображать родные цифры?