백분율 부호없이 값을 백분율로 어떻게 포맷 할 수 있습니까?
문제
float f = 0.479f;
Console.WriteLine(f.ToString("p1"));
출력 : 47.9 %
다음과 같은 출력 백분율 부호를 제거하기 위해 Tostring ()로 전달해야합니다.
47.9
편집하다. 나는 마스크를 제 3 자 구성 요소에 전달하고 있다고 언급 했어야했다. 불행히도 숫자로 곡예를 수행 할 수 없습니다. 트릭을하는 마스크 여야합니다.
해결책
나는 마스크를 제 3 자 구성 요소에 전달하고 있다고 언급 했어야했다. 불행히도 숫자로 곡예를 수행 할 수 없습니다. 트릭을하는 마스크 여야합니다.
그래서 나는 당신이 갇혀 있다고 가정합니다 Float.ToString(String)
, 그리고 당신은 만 편집 할 수 없습니다 p1
안에 f.ToString("p1")
. 이제 그것은 까다로운 것입니다. 암시 된 변경 사항과 관련된 것을 깨는 것을 두려워하지 않으면 다음을 수행 할 수 있습니다.
문서화 된 "P"숫자 형식 MSDN에서, 용도 NumericFormatInfo.PercentSymbol
"%"표시를 작성하기 위해. NumericFormatInfo
현재의 회원입니다 CultureInfo
. 당신이 할 수있는 일은 복제하는 것입니다 CurrentCulture
, 퍼센트 칭을 수정하십시오 ""
다음과 같이 :
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
float f = 0.479f;
Console.WriteLine(f.ToString("p1")); //will write 47.9%
CultureInfo ci = CultureInfo.CurrentCulture.Clone() as CultureInfo;
ci.NumberFormat.PercentSymbol = "";
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
Console.WriteLine(f.ToString("p1")); //will write 47.9
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
Tostring 호출을 바꾸고 싶지 않다면 이것이가는 길입니다.
다른 팁
Console.WriteLine((f * 100).ToString("0.0"));
다음은 어떻습니까?
Console.WriteLine((f * 100).ToString("F1"));
예 : F = 0.4792-> "47.9"
표준 숫자 형식의 목록 및 설명을 사용할 수 있습니다. 여기 MSDN에서, 도움이되는 경우.
시도 할 수 있습니다
Console.WriteLine(f.ToString("p1").Replace('%',' '));
또는 공간을 원하지 않는다면 사용하십시오. Replace('%','\0')
편집 : 만 사용할 수있는 경우 ToString()
방법, 당신은 a를 만들 수 있습니다 NumberFormatInfo
객체, 백분율 기호를 비워 지도록 설정하고 메소드로 전달하십시오. (NumberFormatInfo
에 System.Globalization
네임 스페이스) 예 :
NumberFormatInfo myNewFormat = new NumberFormatInfo();
myNewFormat.PercentSymbol = "";
float f = 0.479f;
Console.WriteLine(f.ToString("p1",myNewFormat));