내가 원하는 것은 다음과 같습니다.
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의 PercentPositivePattern 및 PercentNegativePattern 속성.
예를 들어, 뒤에 “%”가 있고 값과 “%”사이에 공백이없는 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)