Der Grund dafür sind die in NumberFormatInfo.NumberGroupSizes
gespeicherten Werte. Für die Kultur "en-IN" hat diese Eigenschaft Werte {3,2,0}
, was bedeutet, dass die erste Gruppe der Zahl, die dem Komma übrig bleibt, 3 Ziffern hat, die nächste Gruppe wird 2 Ziffern haben und der Rest der Nummer wird nicht gruppiert.
Sie können überprüfen, ob dieser Code ausgeführt wird.
public static void Main()
{
NumberFormatInfo nfi = new CultureInfo("en-IN", false).NumberFormat;
Int64 myInt = 123456789;
Console.WriteLine("NumberGroupSizes.Length : {0}", nfi.NumberGroupSizes.Length);
for(var i = 0;i<nfi.NumberGroupSizes.Length; i++)
{
Console.WriteLine("NumberGroupSizes[{0}] : {1}", i, nfi.NumberGroupSizes[i]);
}
Console.WriteLine(myInt.ToString("N",nfi));
Wenn Sie mit Number „en-US“ Kultur schaffen es nur einen Wert in „Number“ Eigenschaft haben, und dieser Wert „3“ ist, so dass die Ausgabe der Anzahl in Gruppen von 3 Ziffern teilen wird.
NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;
Int64 myInt = 123456789;
Console.WriteLine(myInt.ToString("N", nfi));
// The output will 123,456,789,012,345.00
Ihr Problem lösen Sie neue Werte in die Number Eigenschaft des Number wie folgt einstellen müssen.
public static void Main()
{
NumberFormatInfo nfi = new CultureInfo("en-IN", false).NumberFormat;
Int64 myInt = 123456789;
int[] x = {3,2};
nfi.NumberGroupSizes = x;
Console.WriteLine(myInt.ToString("N",nfi));
//The output will be 12,34,56,78,90,12,345.00
}
Ich hoffe, dass dies Ihr Problem lösen wird.
Klingt nervig, aber was ist die _programming_ Frage? – MSalters
Ich habe gerade die Frage mit Codedetails bearbeitet @MSalters –
Sieht viel mehr wie eine Frage aus, die beantwortet werden kann. Leider nicht von mir, aber StackOverflow hat tausende von C# Experten. – MSalters