Quiero convertir un valor numérico a una cadena, mostrando los dígitos específicos de la cultura. Por ejemplo, el idioma dari utilizado en Afganistán (nombre cultural "prs-AF") usa Eastern-Arabic numerals en lugar del Arabic numerals utilizado en la mayoría de las culturas occidentales (0,1,2,3,4,5,6,7,8,9
).¿Cómo puedo mostrar los dígitos nativos específicos de la cultura en lugar de los números arábigos?
Al examinar la clase CultureInfo integrado en el marco, que enumera los dígitos correctos nativos (captura de pantalla tomadas de la producción en LINQPad):
CultureInfo.CreateSpecificCulture("prs-AF").NumberFormat.NativeDigits
Sin embargo, cuando se trata de convertir un número de una cadena para que aparezca en esa cultura, no estoy recibiendo los dígitos nativos:
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);
¿Alguien me puede decir cómo mostrar los dígitos nativos?
¿Usted ha visto este post: http://stackoverflow.com/questions/3055195/string-format-not-converting-integers -correctamente en árabe/4781769 # 4781769? –
'Thread.CurrentThread.CurrentCulture = New CultureInfo (" prs-AF ");' ?? –
@Paul - Intenté usar la respuesta sugerida en esa publicación, pero no funcionó. Si miras mi captura de pantalla de arriba, puedes ver que el 'DigitSubstitution' por defecto para la cultura" prs-AF "es' NativeNational'. –