Числовые вопросы в R

Общеизвестно, что при сравнении двух действительных чисел всегда лучше работать с небольшим допуском, чтобы избежать численных проблем.

Я ищу пример, когда мы сравниваем число x имеющий d количество возвращаемых знаков после запятой FALSE для выражения ниже:

round(x, d) == x

Например, если x=0.1234 затем d=4, Тем не менее, это не хороший пример, когда вы оцениваете round(x, d) == x возвращается TRUE, Я ищу ценность x где round(x, d) == x превращается в FALSE,

1 ответ

Решение

Непонятно как вы определяете d, Здесь я предполагаю, что это определено на основе точной алгебры.

for (i in 1:20) print(1/(8 * 10^i) == round(1/(8 * 10^i), 3 + i))
sprintf("%.50f", 1/8e20)
#[1] "0.00000000000000000000124999999999999993158684291616"
Другие вопросы по тегам