Почему возникают ошибки округления? - PullRequest
0 голосов
/ 03 апреля 2020

Кто-нибудь может объяснить, почему ошибки округления происходят вообще? Некоторые онлайн-объяснения перешли мне на голову на inte rnet, и мне было интересно, есть ли у кого-нибудь легкое для понимания объяснение. Я иногда сталкивался с этой проблемой при программировании и всегда был озадачен тем, почему это происходит в компьютерной системе. Одна вещь, которую я заметил, это то, что это происходит, когда определенные числа оцениваются с помощью определенных операций (например, умножение, деление и т. Д. c ...).

Например, иногда математические вычисления возвращают число, например 14.000000001 или 45.99999999 вместо ожидаемых значений (14 и 46)

Может ли быть так, что целочисленное переполнение вызвано действиями используемого языка программирования или каким-либо основным фактором в компьютерных системах?

1 Ответ

1 голос
/ 03 апреля 2020

Поскольку, как правило, компьютер назначает фиксированный объем памяти для хранения каждого номера. Поскольку все в компьютере работает с двоичными цифрами, степени двух легко представимы, в то время как что-то вроде 1/3 на самом деле не так.

Поэтому 1/3 на компьютере на самом деле не "вещь, которая умножается на 3 до дать 1 ", как это в математике, это что-то вроде 0,3333333333 (или близко к этому). Поэтому в 3 раза это может быть 0,99999999, а не 1.

Посмотрите, как плавает язык программирования C, например, если вы хотите узнать больше о том, как это на самом деле представлено. Это несколько связано, но принцип заключается в том, что для представления di git назначается только определенное количество пространства, и поэтому произвольная точность просто невозможна.

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