문제

내 응용 프로그램은 현재 음수를 -1로 표시하고 있습니다. 사용자는 요구 사항을 변경했으며 (변경을 위해서만!) 이제 숫자를 (1)로 표시해야합니다. 전체 응용 프로그램에서 Web.config 또는 앱의 CultureInfo를 변경한다고 말할 수 있습니까? 숫자 유효성 검사기가 포함 된 페이지가 많기 때문에 그렇게하는 부작용이 있습니까?

감사 !

도움이 되었습니까?

해결책

통화의 경우 정말 쉽습니다.

String.Format("{0:C}", value)

이것은 시스템의 문화 정보를 사용합니다.

정상 숫자의 경우 데이터 바인드 인 경우 사용하십시오 Mark Glorie의 샘플.

MSDN 기사

다른 팁

문자열 형식을 사용합니다. UI 요구 사항을 충족시키기 위해 응용 프로그램의 구성을 변경하는 것은 손이 큽니다. Stevex는 a 훌륭한 블로그 게시물 문자열 서식에 대해. 또한 코드에만 관련된 대신 Markup (ASPX)과 호환됩니다.

그의 게시물에서 :

String.Format(”{0:$#,##0.00;($#,##0.00);Zero}”, value);

    This will output “$1,240.00″ if passed 1243.50. It will output the 
    same format but in parentheses if the number is negative, and will
    output the string “Zero” if the number is zero.

정확히 당신이 원하는 것은 아니지만 가깝습니다.

이걸 확인해 ..http://msdn.microsoft.com/en-us/library/91fwbcsb.aspx

지정된 스타일로 숫자의 문자열 표현을 소수점으로 변환합니다.

항상 자신의 사용자 정의 toString () 메소드를 확장 방법으로 쓸 수 있지만, 언급 한 것처럼 CultureInfo를 사용하는 것이 더 좋습니다. 여기를 참조하십시오.

http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.numbernegativepattern.aspx

문자열 서식을 수행하기 위해 다음 페이지가 북마크되어 있습니다. http://idunno.org/archive/2004/14/01/122.aspx

중간 쯤에 대답을합니다.

String.Format("{0:£#,##0.00;(£#,##0.00);Nothing}", value);

다른 질문에 답하기 위해 다른 답변에 주어진 이유로 app.config를 글로벌로 만들도록 수정하지 않습니다.

String.Format(”{0:f;(f);0”, -1);

이것은 작동합니다.

DataFormatString="{0:c0}"
  • paranthesis의 비해 양
  • 천 개 분리기 - 쉼표
  • 앞의 $ 기호

GridView/Datagrids에 데이터를 표시하고 있습니까? 그렇다면 형식은 다음과 같은 바운드 컬럼에 따라 적용 할 수 있습니다.

<asp:BoundField DataFormatString="{##;(##)}"/>

그러나 정수와 함께 작동하지만 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top