이 이유는 NumberFormatInfo.NumberGroupSizes
속성에 저장된 값입니다. 문화권 "en-IN"의 경우이 속성의 값은 {3,2,0}
입니다. 즉 소수점 왼쪽 첫 번째 그룹은 3 자리 숫자이고 다음 그룹은 2 자리 숫자이며 나머지 숫자는 그룹화되지 않습니다.
이 코드를 실행하는 것으로 확인할 수 있습니다. 당신이 사용하는 NumberFormatInfo를 만들 경우
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));
는 "EN-US"문화는 "NumberGroupSizes"속성에 하나의 값을가집니다 및 출력이 3 자리의 그룹의 수를 나눕니다 "3"그래서 값입니다.
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
문제를 해결하려면 다음과 같이 NumberFormatInfo의 NumberGroupSizes 속성에 새 값을 설정해야합니다.
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
}
이 문제가 해결되기를 바랍니다.
짜증나지만, _programming_ 질문은 무엇입니까? – MSalters
코드 세부 사항으로 질문을 편집했습니다. @MSalters –
답변 할 수있는 질문과 훨씬 비슷합니다. 불행히도 저로서는 아니지만 StackOverflow에는 수천 명의 C# 전문가가 있습니다. – MSalters