Почему math.cos(math.pi/2) не возвращает ноль?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему math.cos(math.pi/2) не возвращает ноль?

Сообщение Anonymous »

Я столкнулся со странным поведением math.cos() (Python 3.11.0):

Код: Выделить всё

>>> import math
>>> math.cos(math.pi)  # expected to get -1
-1.0
>>> math.cos(math.pi/2)  # expected to get 0
6.123233995736766e-17
Я подозреваю, что в этом может сыграть роль математика с плавающей запятой, но я не знаю, какую именно. А если бы это было так, я бы предположил, что Python просто проверяет, равен ли параметр math.pi/2 для начала.
Я нашел этот ответ от Джона Скита, который сказал: :

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

Но если это правда, то math.cos(math.pi) не должен Это тоже не сработает, потому что он также использует приближение math.pi. Мой вопрос: почему эта проблема возникает только при использовании math.pi/2?

Подробнее здесь: https://stackoverflow.com/questions/755 ... eturn-zero
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»