Я пытаюсь понять принуждение обоснование двойников:Каково обоснование двойного принуждения?
as.logical(c(-1, -0.01, 0, 0.01, 0.1,1:10))
#> [1] TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
#> [12] TRUE TRUE TRUE TRUE
я могу видеть, что принуждение происходит на скаляр (знак не имеет значения) и , что только точно 0 принуждается к FALSE
. Я был удивлен этим, , похоже, нет понятия «ближе всего ...» или округления до 0L или 1L. Мне любопытно, почему.
Я старался охотиться за проницательностью here но без успеха.
Я также рассмотрел this related question.
Может кто-нибудь объяснить, почему я должен ожидать, что каждая из вышеуказанных проверенных значений принуждает, как они это делают?
Я полагаю, тогда возникает вопрос, почему это логическое обоснование, когда это определено в 'C'! – npjc
@npjc: [Потому что, математика.] (Https://en.wikipedia.org/wiki/Boolean_algebra) :) –