Числовые вопросы в 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"