Опыт в SBCL не так? - PullRequest
       14

Опыт в SBCL не так?

4 голосов
/ 23 января 2011

CL-USER> (exp 1)
2.7182817

Почему?Это должно быть 2.7182818 (округлено от 2.7182818284590452353602874713526624977572470936999595749669 ...)

SBCL 1.0.29.11.debian

Ответы [ 2 ]

8 голосов
/ 23 января 2011

Это ошибка округления, присущая IEEE в формате с плавающей запятой.

CL-USER> (exp 1.0d0)
2.718281828459045d0
3 голосов
/ 23 января 2011

Узнайте больше об арифметике с плавающей точкой и ее «проблемах» в этой классической статье (PDF):

Что должен знать каждый компьютерщик об арифметике с плавающей точкой

...