#r #double
#r #двойной
Вопрос:
Почему в R typeof(Inf)
возвращается double
? R считает бесконечность действительным числом или просто числом?
x=1
xx=0
y=x/xx
typeof(y)
ответ таков "double"
Спасибо
Комментарии:
1. Вы делите два удвоения. Вы ожидали, что арифметическая операция изменит тип?
2. @Roland Ошибка, да :
typeof(1L / 2L)
.3. @KonradRudolph Я знаю. Я пытаюсь выяснить, что именно спрашивает нас OP и что их смущает. Я нахожу вопрос совершенно неясным.
4. Я не понимаю, почему R cnoseder a / 0 — это Inf, а не NaN
Ответ №1:
Ну, в общем, потому что любой числовой литерал в R имеет тип double
, если он не заканчивается на L
:
> typeof(1)
double
> typeof(NA_real_)
double
> typeof(1L)
integer
И, более конкретно, because Inf
— это специальное значение, которое может храниться только в виде числа с плавающей запятой, а не в виде целого числа.
Комментарии:
1. не обязательно:
1:5
например, имеет типinteger
.2. @JDL Верно, но это не числовой литерал. 😉 И тип зависит от
:
, который может быть переопределен (например, в моих интерактивных сеансах R тип1:5
— этоxrange
потому, что я переопределяю:
).3. Хорошо, хорошо …
NA_integer_
: P