NumberGroupSizes for "en-IN" culture is set as 3,2,0 which is wrong and ideally be set as 3,2 in windows server 2012.
// Gets a NumberFormatInfo associated with the en-IN culture.
NumberFormatInfo nfi = new CultureInfo("en-IN", false).NumberFormat;
// Displays a value with the default separator (".").
Int64 myInt = 123456789012345;
Console.WriteLine(myInt.ToString("N", nfi));
The above code ran on windows server 2012 gives out put as 1234567890,12,345.00 which is wrong. Ideally it should be 12,34,56,78,90,12,345.00
The reason behind this is the values stored in
NumberFormatInfo.NumberGroupSizes
property. For culture "en-IN" this property has values{3,2,0}
which means first group of the number left to the decimal point will have 3 digits, next group will be have 2 digits and rest of the number will not be grouped.You can check by as running this code.
If you create NumberFormatInfo using "en-US" culture it will have only one value in "NumberGroupSizes" property and that value is "3" so the output will divide the number in groups of 3 digits.
To solve your issue you need to set new values to the NumberGroupSizes property of the NumberFormatInfo as following.
I hope this will resolve your issue.