데이터베이스에서 데이터를 가져 와서 문자열로 저장하는 클래스가 있습니다.숫자 서식 지정
sAnswer
은 일반적으로 int 일 수 있습니다. 그것이 int 일 때 나는 콤마 분리자를 갖도록 포맷하려한다. (1000000 -> 1,000,000) 어떻게해야합니까?
Format
을 사용하면 var val = string.Format("{0:n0}", sAnswer);
과 같이 작동하지 않습니다.
데이터베이스에서 데이터를 가져 와서 문자열로 저장하는 클래스가 있습니다.숫자 서식 지정
sAnswer
은 일반적으로 int 일 수 있습니다. 그것이 int 일 때 나는 콤마 분리자를 갖도록 포맷하려한다. (1000000 -> 1,000,000) 어떻게해야합니까?
Format
을 사용하면 var val = string.Format("{0:n0}", sAnswer);
과 같이 작동하지 않습니다.
문자열이 아닌 값을 문자열로 변환 할 때 서식이 적용됩니다. 이미 문자열 인 값에는 서식을 적용 할 수 없습니다. 당신은 int
에 다시 string
을 변환해야합니다 일시적으로
string val = String.Format("{0:n0}", Int32.Parse(sAnswer));
당신은 NumberStyles
상수
string val = String.Format("{0:n0}", Int32.Parse(sAnswer,
NumberStyles.AllowLeadingWhite |
NumberStyles.AllowTrailingWhite|
NumberStyles.AllowExponent));
또는 단순히 사용하여의 비트 조합을 사용하여 변환을 시도 Int32.Parse
하는 방식에 영향을 미칠 수있다 NumberStyles.Any
enum 상수는 최대의 유연성을 제공합니다. sAnswer
은 (예를 들어 빈 문자열 등) 잘못된 항목을 포함 할 경우, 안전한 변환
string val;
int i;
if (Int32.TryParse(sAnswer, out i)) {
val = String.Format("{0:N0}", i);
} else {
val = ""; // Assign a default value here
}
을 수행 하는가에 대해이 작업을하면
int answerInt;
if (int.TryParse(sAnswer, out answerInt))
{
sAnswer = answerInt.ToString("#,0", CultureInfo.InvariantCulture)
}
'out' 매개 변수로 덮어 쓸 계획이라면'answerInt'의 기본값을 지정하지 마십시오. 구문 분석하지 않으면 그냥 버려집니다 ('0'으로 설정). –
@ChrisSinclair, 고맙습니다. – Kane
'string'을'int'로 형 변환 할 수 없습니다. 예외 ''문자열 '을'int ' "'로 변환 할 수 없습니다. –
는 "쉼표 구분이"무엇을 의미합니까? 1000000과 같이 큰 숫자라면 "1,000,000"으로 형식이 지정됩니까? –
이 맞다면, 나는 OP – Mike