[C#] 백분율 값의 형식 10 진수?

내가 원하는 것은 다음과 같습니다.

String.Format("Value: {0:%%}.", 0.8526)

%%는 해당 형식 공급자이거나 내가 찾고있는 것입니다. 결과 :Value: %85.26. .

기본적으로 wpf 바인딩에 필요하지만 먼저 일반적인 형식 문제를 해결해 보겠습니다.

<TextBlock Text="{Binding Percent, StringFormat=%%}" />



답변

P형식 문자열을 사용하십시오 . 문화에 따라 다릅니다.

String.Format("Value: {0:P2}.", 0.8526) // formats as 85.26 % (varies by culture)


답변

문화 종속 서식을 따로 설정하고 값과 “%”사이에 공백이 있는지 여부와 “%”가 선행 또는 후행인지 여부를 명시 적으로 제어해야하는 충분한 이유가있는 경우 NumberFormatInfo의 PercentPositivePatternPercentNegativePattern 속성.

예를 들어, 뒤에 “%”가 있고 값과 “%”사이에 공백이없는 10 진수 값을 얻으려면 다음을 수행하십시오.

myValue.ToString("P2", new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 });

더 완전한 예 :

using System.Globalization;

...

decimal myValue = -0.123m;
NumberFormatInfo percentageFormat = new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 };
string formattedValue = myValue.ToString("P2", percentageFormat); // "-12.30%" (in en-us)


답변

항목과 같은 숫자를 유지할 수있는 형식을 사용하려면이 형식이 적합합니다.
"# \\%"


답변

이 코드가 도움이 될 수 있습니다.

double d = double.Parse(input_value);
string output= d.ToString("F2", CultureInfo.InvariantCulture) + "%";


답변

위의 답변이 최상의 솔루션이라는 것을 알았지 만 백분율 기호 앞에 선행 공백이 마음에 들지 않습니다. 다소 복잡한 솔루션을 보았지만 다른 반올림 솔루션을 사용하는 대신 위의 답변에이 대체 추가를 사용하십시오.

String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)


답변