나는 현재 DateTime.ParseExact
함수와 비슷한 두 개의 문자열을 구문 분석하려고하는 사용자 지정 유효성 검사 컨트롤을 구축하고 있습니다.문자열을 구문 분석하고 형식 문자열을 기반으로 문자열을 이중으로 변환하는 방법은 무엇입니까?
Console.WriteLine(Double.ParseExact("12.00", "0.00", CultureInfo.InvariantCulture).ToString()); // should print "12"
Console.WriteLine(Double.ParseExact("asd", "0.00", CultureInfo.InvariantCulture).ToString()); // should throw FormatException
Console.WriteLine(Double.ParseExact("12.000", "0.00", CultureInfo.InvariantCulture).ToString()); // should throw FormatException, because it has to many decimal digits
내가 단순히 형식 문자열없이 분석 할 수 있습니다 알고 있지만 좀 더 엄격한 규칙이 여기에 적용 할 : 여기
내가 보관하려고 할 것입니다. 형식 문자열은 standard format string 또는 custom format string 일 수 있으므로 다를 수 있습니다.물론이 방법은 존재하지 않습니다. 여기에 동일한을 수행하는 DateTime
클래스에있는 기존 방법이지만 DateTime
들과 함께 :
DateTime.ParseExact("2016-09-06T11:57:55.335", "yyyy-MM-ddTHH:mm:ss.fff", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
나는 Double
에 대해 동일한 작업을 수행 할 수 있습니까? 그런데
...
그 이유는 내가 BaseValidator
로부터 상속 사용자 정의의 asp.net 웹 양식 RangeValidator
을 짓고 있어요입니다. 이 컨트롤을 DateTime
과 호환되도록 지정하고 사용자 정의 형식 문자열을 사용하고 InvariantCulture
을 사용하여 새 HTML5 컨트롤 ([type=numeric]
및 [type=datetime]
)과 완벽하게 호환되도록합니다.
컨트롤의 숫자 유효성 검사 부분이 DateTime 유효성 검사 파트와 유사하게 작동하는 것이 좋습니다. 또한 누군가가 숫자의 잘못된 문자열 표현을 입력하면 유효성 검사기의 요청을 거부하는 것이 좋습니다.
Double.TryParse를 보았습니까? https://msdn.microsoft.com/en-us/library/3s27fasw(v=vs.110).aspx – sr28
@ sr28'Double.TryParse'는 엄격한 형식 문자열을 제공하지 않습니다. – modiX
생각해 봤는데 ... "지정된 스타일 * 및 문화권 특정 형식의 숫자 문자열 표현을 해당 배정 밀도 부동 소수점 숫자" – sr28