Код: Выделить всё
>>> import math
>>> math.cos(math.pi) # expected to get -1
-1.0
>>> math.cos(math.pi/2) # expected to get 0
6.123233995736766e-17
Я нашел этот ответ от Джона Скита, который сказал: :
По сути, не следует ожидать, что двоичные операции с плавающей запятой будут абсолютно правильными, если ваши входные данные не могут быть выражены как точные двоичные значения - что пи/ 2 не может, поскольку это иррационально.
Но если это правда, то math.cos(math.pi) не должен Это тоже не сработает, потому что он также использует приближение math.pi. Мой вопрос: почему эта проблема возникает только при использовании math.pi/2?
Подробнее здесь: https://stackoverflow.com/questions/755 ... eturn-zero