2010-10-13 4 views
0

Это может быть глупый вопрос: при использовании float существует некоторое округление для десятичных знаков, как проверить округление ошибок, предпочтительно в java или C? Любые предложения будут высоко оценены.Как проверить ошибки округления?

+1

Есть трюк, в котором вы меняете режим округления, повторяете расчет и видите, является ли результат то же самое (если это не одно и то же, разница дает вам представление о том, насколько численно стабилен ваш алгоритм). Если поддерживается, вы делаете это на C с 'fesetround' от' '. Но ответ на вопрос «имеет округление?» почти всегда «да», поэтому вы не теряете много общности, если только предполагаете, что это имеет место, и переходите к размышлению, насколько это повлияло на результат ;-) –

ответ

0

Ну, вы можете сделать операцию в чем-то без округления и сравнить результаты. Например, в java вы можете использовать Big Decimal для выполнения операции после того, как вы сделали это с помощью float ... и посмотрите, попадете ли вы в тот же номер.

Лучший вопрос, почему вы хотите это сделать? Float часто делает странные раунды, вы не хотите использовать его везде, где вам нужна точность (т. Е. С банковской транзакцией). В этом случае используйте Big Decimal. Но если вы просто хотите представить 3D-точку на экране, то округление до 1.499997 ничего не изменит ...

+0

спасибо за ответ – collegian

Смежные вопросы