2017-03-11 6 views
0

에 사용자 정의 문자열 형식 사용 데이터베이스에 소수점 4 자리가있는 소수 값이 표시되지만 뒤에 0이없는 천 단위 구분 기호가있는 형식을 표시해야합니다. 나는 G, F, N 포맷을 시험해 봤지만, 내가 원하는 결과에 대한 단서가 없다.10 진수 C#

1234.3456   // 1,234.3456 
1234.0000   // 1,234.00 
1234.3450   // 1,234.345 
1234.345678  // 1,234,3457 
1234    // 1,234.00 
1234.2    // 1,234,20 
+0

나는 want_ 결과에 아무런 단서가 없다 _but – Fabio

답변

0

매우 쉽게 여기에 해당 문제가 있습니다. 그 문제가 해결되면, 답변으로 표시하는 것을 잊지 말아주십시오 :

double value; 

    value = 123; 
    Console.WriteLine(value.ToString("00000")); 
    Console.WriteLine(String.Format("{0:00000}", value)); 
    // Displays 0

    value = 1.2; 
    Console.WriteLine(value.ToString("0.00", CultureInfo.InvariantCulture)); 
    Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
        "{0:0.00}", value)); 
    // Displays 1.20 

    Console.WriteLine(value.ToString("00.00", CultureInfo.InvariantCulture)); 
    Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
            "{0:00.00}", value)); 
    // Displays 01.20 

    CultureInfo daDK = CultureInfo.CreateSpecificCulture("da-DK"); 
    Console.WriteLine(value.ToString("00.00", daDK)); 
    Console.WriteLine(String.Format(daDK, "{0:00.00}", value)); 
    // Displays 01,20 

    value = .56; 
    Console.WriteLine(value.ToString("0.0", CultureInfo.InvariantCulture)); 
    Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
            "{0:0.0}", value)); 
    // Displays 0.6 

    value = 1234567890; 
    Console.WriteLine(value.ToString("0,0", CultureInfo.InvariantCulture)); 
    Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
            "{0:0,0}", value)); 
    // Displays 1,234,567,890  

    CultureInfo elGR = CultureInfo.CreateSpecificCulture("el-GR"); 
    Console.WriteLine(value.ToString("0,0", elGR)); 
Console.WriteLine(String.Format(elGR, "{0:0,0}", value)); 
    // Displays 1.234.567.890 

    value = 1234567890.123456; 
    Console.WriteLine(value.ToString("0,0.0", CultureInfo.InvariantCulture)); 
    Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
            "{0:0,0.0}", value)); 
    // Displays 1,234,567,890.1 

    value = 1234.567890; 
    Console.WriteLine(value.ToString("0,0.00", CultureInfo.InvariantCulture));  
    Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
            "{0:0,0.00}", value));  
    // Displays 1,234.57 
0

사실, Decimal.ToString에 대한 MSDN 페이지가 거의 exacly 당신이 그들의 마지막 예에서 필요가 있습니다. ". #, # 00 # (#, # 00 #.)"

지정 =

그러니 그냥 부정적인 형식을 삭제하고, 마지막에 추가 #를 추가 그것을 수행 :
specifier = "#,#.00##"

그냥 그것을 시도 :

decimal[] decimals = {1234.3456M, 1234.0000M, 1234.3450M, 1234.345678M, 1234, 1234.2M}; 
string[] formattedDecimals = decimals.Select(d => d.ToString(specifier)).ToArray();