2010-07-01 3 views

답변

22
num.Length - num.IndexOf(".")-1; 
+2

그리고 "800.555.1212"와 같은 입력이 있고 "1212"의 길이가 필요한 경우에는 num.LastIndexOf를 사용하십시오. – maxwellb

1
num.SubString(num.IndexOf(".") + 1).Length; 

은 한 일부 문자 애프터 항상 존재로 작동합니다 '.'

+0

새 문자열을 인스턴스화하고이를 메모리에 할당하여 길이를 계산할 필요가 없습니다. –

+0

사실, @ Grzenio만큼 효율적이지는 않다. – w69rdy

+0

을 사용할 수있는 또 다른 대안이다. + 1을 사용하는 @ Grenzio의 예제는 num.Length - (num.IndexOf (".") +1)이 될 것이다. – MikeTWebb

1
string[] s = num.split('.'); 
int count = s[1].Length; 
+0

(w69rdy와 유사) 길이를 계산하기 위해 새로운 문자열 배열을 인스턴스화 할 필요가 없습니다 –

+0

참. 나는 명확하게 설명하기 위해 "내 일을 보여 줬어". – Robaticus

+0

'.' 아니면 그 '.' 문자열의 처음이나 끝에 있습니까? 그런 다음 s [1] = null 및 s [1] .length는 예외를 발생시킵니다. 나는이 방법을 사용하지 않을 것이다. 존재할 것이고 그것은 중간 어딘가에있을 것이다. – JSON

1

가장 읽기 쉬운 형식이어야합니다.

num.SkipWhile(c => c != '.').Skip(1).Count(); 
0
var a = 12345.67; 
var after_dot = (a.toString().split(".")[1]).length; 
var before_dot= (a.toString().split(".")[0]).length; 

-
(source)

관련 문제