Вы сравниваете число со строкой с оператором ==
. Вместо этого используйте identical
.
Начните с:
> a=15.60000000000001
> a
[1] 15.6
> a=="15.6"
[1] TRUE
> a==15.6
[1] FALSE
Тип такого числа в вашем случае хранится в переменной a
.
options(digits...)
управляет количеством цифр для печати при печати чисел c. Теперь установите количество цифр для печати 16:
> options(digits=16)
> a
[1] 15.60000000000001
> toString(a)
[1] "15.6"
Вы видите, что случилось? identical
не страдает от этой проблемы.