을 감안할 때 두 개의 정수 :`a^b`는 'a`와`b`가 정수일 때 왜 숫자를 반환합니까?
a <- 1L
b <- 1L
내가 기대하는 것처럼, 추가 공제, 또는도를 곱한 정수 제공 :
class(a + b)
# [1] "integer"
class(a - b)
# [1] "integer"
class(a * b)
# [1] "integer"
을하지만 그들에게 분할하는 것은 숫자 제공 :
class(a/b)
# [1] "numeric"
을
나는 이유를 이해할 수 있다고 생각한다 : 정수의 다른 조합 (예 : a <- 2L
과 b <- 3L
)이 숫자를 반환하기 때문에, 일반 항상 숫자를 반환하는 것입니다. 지수 상으로 지금
:
class(a^b)
# [1] "numeric"
이 사람은 나에게 조금은 놀람이다. 왜 이런 방식으로 설계되었는지 설명 할 수 있습니까?
결과가 'Inf'로 이어질 수 있기 때문이죠? 'as.integer (Inf)'는 'NA'가됩니다. 예 : 2L^10000L – Arun
내가 선택한 답변을 좋아하지만 아마도 실제 지수를 지수로 사용하는 데 또 다른 "코너 사례"를 만들 수 있다는 장점이 있는지 물을 수 있습니다. 특히 호출 할 수있는'R' 코드 또는'unix'' pow' 함수가 로그를 사용하여 처음에 지수를 계산하는 경우. –