문제

string.format은 문자열을 입력으로 형식하지 않는 것처럼 보입니다. 내가 뭔가 잘못하고 있습니까, 아니면 이것이 단지 네이티브 행동입니까?

입력 : 0.37

이것은 작동하지 않습니다.

string x = String.Format("{0:P}", myString)

출력 : 0.37

이것은 그렇습니다.

string x = String.Format("{0:P}", Convert.ToDecimal(myString))

출력 : 37.00 %

도움이 되었습니까?

해결책

나는 이것이 '복합 형식'에 대한 예상되는 행동이라고 생각합니다.

첫 번째 예는 숫자 서식 규칙을 문자열에 적용하는 것입니다. 두 번째 예제는 소수점 위치를 가질 수있는 숫자에 숫자 형식 형식 규칙을 적용하는 것입니다.

보다 MSDN에 관한이 기사 자세한 내용은.

다른 팁

적용하려는 형식 옵션은 숫자에만 작동합니다. .NET에는 CLR이 유형의 문자열을 검사하는 스마트 문자열의 개념이 없습니다.

내가 뭔가 잘못하고 있습니까, 아니면 이것이 단지 네이티브 행동입니까?

그것은 기본적인 행동입니다. 기본적으로 직업이 아닙니다 Format 문자열 입력을 해석합니다. Format 사용자가 올바른 데이터를 제공한다고 가정합니다. 숫자 데이터. 문자열은 숫자가 아니더라도 숫자가 아닙니다 대표합니다 숫자 (이것은 값/의미론과 그 표현/구문 사이의 CS의 모든 중요한 차이입니다!).

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