백분율 부호없이 값을 백분율로 어떻게 포맷 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/2075835

  •  21-09-2019
  •  | 
  •  

문제

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 객체, 백분율 기호를 비워 지도록 설정하고 메소드로 전달하십시오. (NumberFormatInfoSystem.Globalization 네임 스페이스) 예 :

    NumberFormatInfo myNewFormat = new NumberFormatInfo();
    myNewFormat.PercentSymbol = "";

    float f = 0.479f;

    Console.WriteLine(f.ToString("p1",myNewFormat));
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top