2011-05-05 3 views
3

전 세계 사용자가 쉽게 읽을 수 있도록 회사 응용 프로그램에서 기존 숫자 서식을 변경하려고합니다. 이것은 주식 거래 응용 프로그램입니다. 따라서 대부분의 주가는 17.23과 같이 소수점 2 자리까지 정확하게 나타납니다. 또한 소수점 이하 4 자리까지는 진드기를 얻을 수 있으므로 페니 주식은 0.0341이 될 수 있습니다. 주식을 위해 사용했던 원래의 문자열 형식은 "#, ## 0.00 ##"이었습니다. 그러면 우리가 원하는 형식을 얻을 수있었습니다 (본질적으로 '0'으로 트리밍). 여기서 문제는 ','및 '.'입니다. 사용자에게 강요 당합니다. 다른 많은 국가에서는 천 단위 구분 기호가 '.'입니다. 소수점은 ','입니다. 보스 맨은 세계화 문제를 해결할지라도 모든 숫자에 "N4"를 사용하고 싶지 않습니다. 세계화 된 사용자 정의 문자열 형식을 사용할 수 있습니까?세계화 된 사용자 지정 숫자 서식 - 변수 소수점

숫자를 국제화하는 중간 코드를 작성하는 것 외의 다른 옵션은 원래의 방식이나 다른 string.format 방식으로 포맷 되었습니까?

답변

0

사용자 지정 형식 문자열의 ,.은 이미 현재 문화권의 올바른 구분 기호로 변환되어 있습니다. 코드를 변경할 필요가 없습니다. MSDN을 참조하십시오.

+0

아, 네 말이 맞아. 분명히 내 문제는 문자열을 생성하는 스레드가 내가 지정한 줄 알았던 문화로 실행되고 있지 않다는 것입니다. – ReiniGrauer

+0

내가보기에 유일한 다른 문제는 Currency입니다. 현재 문화권의 통화 기호가 2-4 자리의 소수 자릿수를 앞에두고 싶다면 이것을 수행하는 좋은 방법이 있습니까? "$ ###, ## 0.00 ##"을 사용하면 문화권의 통화 기호 (MSDN에 따라)의 자리 표시자가 아니기 때문에 항상 '$'를 사용합니까? – ReiniGrauer

+1

내 대답 좀 봐, 그냥 C4로 N4 변경 – goenning

1

확인이 아웃 :

float value = 0.0341f; 
string output = string.Empty; 
CultureInfo brazil = new CultureInfo("pt-BR"); 
CultureInfo usa = new CultureInfo("en-US"); 
output = value.ToString("C4", brazil.NumberFormat); //output is R$ 0,0341 
output = value.ToString("C4", usa.NumberFormat); //output is $0.0341