2010-01-07 3 views
4

이 코드는 간단해야하지만, 제대로 이해하지 못했습니다. 나는 참조 용으로 http://idunno.org/archive/2004/14/01/122.aspx을 보았다.C# 문자열 형식화 및 패딩

예 :double 값의 표를 인쇄하고 각 이중 출력은 소수점 이하 3 자리를 가지며 10 개의 공백을 사용합니다 (왼쪽 정렬). 개념적으로,이 같은 시도했지만 그것은 단지 정밀도 또는 패딩, 둘 다 작동 :

foreach(line in lines) 
{ 
    foreach (double val in line) 
    { 
     Console.Write("{0:0.000,-10}", val); 
    } 

    Console.WriteLine() 
} 

업데이트 : 내가 더 복잡한 출력이있는 경우 나, 아주 간단한 시나리오에서 padleft/padright를 사용할 수있는 매우하지된다 간결한. sprintf와 비슷한 것이 있습니까?

+1

string.Format은 C#의 sprintf – CannibalSmith

답변

8

double d = 3.14; 
Console.WriteLine("{0,10:0.000}", d); 

P.S을보십시오 : 문자열 형식의 프라이머로 this article를 보라. 또한 string.Format을 사용하면 sprintf가하는 모든 작업을 수행 할 수 있습니다. 실제로 더 많은 작업을 수행하려고합니까?

+0

:)입니다. 매우 좋습니다! 감사합니다. 아 설명을 더 자세히 읽지 않으므로 저의 잘못입니다. – homie347

-1

유용

|{0,-10:0.00}| => |87,87 | - With "-" => padRight

|{0,10:0.000}| => | 87,878| - Without "-" => padLeft

|{3,-10:0.###}| - ### - 그것은 의미에만 진수 후 인쇄 번호 ","(0이 아닌) : 87,8000 => 87 , 8