2014-03-02 2 views
-2

Naive Bayes 확률을 계산하고 싶습니다. 계산식은 다음과 같습니다.얼마나 많은 시간을 두 번 캐스팅해야합니까?

Math.Log((n1+1)/(n2+n3))/Math.Log(2) 

결과는 두 배가되어야합니다. 여기서 n1..n3은 길어야합니다. 어떻게 캐스팅합니까? 이

Math.Log((double)(n1+1)/(n2+n3))/Math.Log(2) 
+2

당신은'Math.log' –

+2

현재 캐스트가 어떤 이유로 작동하지 않습니다 의미하지 않는다 ...? – Radiodef

+0

작동하지만 모든 조건에 대해 사실인지 확인하고 조언이 필요합니다. –

답변

3

현재 캐스트와 같은

나의 현재 캐스팅이 제대로 작동합니다. 디비전의 피연산자 중 하나가 double이면 다른 하나가 double에도 캐스팅됩니다. , 다른 하나는

  • 피연산자 유형의 두 경우이다 :

    넓히는 기본 변환 중 하나 또는 다음과 같은 규칙에 의해 지정된 두 피연산자 변환 적용됩니다

    Java Language Specification on Binary Numeric Promotion 참조 double로 변환됩니다.

  • 그렇지 않으면 두 피연산자 중 하나가 float 유형 인 경우 다른 하나는 float로 변환됩니다.

  • 그렇지 않으면 두 피연산자 중 하나가 long 유형 인 경우 다른 피연산자는 long으로 변환됩니다.

  • 그렇지 않으면 두 피연산자 모두 int 유형으로 변환됩니다.

+0

좋은 설명, 고맙습니다. –

관련 문제