2015-11-19 2 views
-1

Когда я запускаю этот расчет: 2.36*7299.83 в R возвращается 17227.599, но правильный ответ должен быть 17227.5988. Даже когда я запускаю options(digits=8) до или round(2.36*7299.83, 4), он все равно получает неправильный ответ.Ошибка округления R

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

Любая помощь?

спасибо.

+5

'17227.5988' длинна 9 цифр. –

+0

'возвращается 17227.599' => что возвращается 17227.599? –

+0

Hum, то есть не десятичные цифры. Благодарю. – incitatus451

ответ

0

Я думаю, вы должны указать формат:

formatC(2.36*7299.83, digits=4, format = "f") 

"17227,5988"

formatC(2.36*7299.83, digits=8, format = "f") 

"17227.59880000"

0

по умолчанию digits - 7.

getOption("digits") 
# [1] 7 
print(round(2.36*7299.83, 4), digits=9) 
# [1] 17227.5988 
Смежные вопросы