Python

Как исправить число Pi? :)

В Python число Pi не верно, так как имеет погрешность числа float. Из-за этого цифры после запятой на позиции 10й начинают отличатся от настоящего числа Pi.
Как это решить? Есть ли способ получить верное число Pi, хотя бы до 100й цифры после запятой?
Это ограничение не языка Python, а способа хранения/обработки вещественных чисел в компьютере. Используя стандартные вещественные числа, точность никак не увеличить. Так что единственный возможный способ - использовать модуль вычислений с произвольной точностью: https:// metanit.com/python/tutorial/6.4.php
Но это медленно.

Материалов же по теме "вычисление числа pi с произвольной точностью" в интернете полно - достаточно спросить у Гугла.
ВК
Витя Кашин
68 421
Лучший ответ
Вычисляй сам. Проблем то...
Новейшая и самая точная формула вычисления N-го знака числа Пи без вычисления предыдущих изобретена в 1995 году.
Вот тут даже пример программы есть:
https://habr.com/ru/post/179829/
Rinat Kuramshin
Rinat Kuramshin
94 441
-Однако, Сир, Вы рассказываете сказки! Числа float в Пайтоне стандартные восьмибайтные и уже поэтому число π представлено как минимум пяднадцатью правильными десятичными знаками после запятой. Например, директива

import math; print(math.pi)

выдаст такое значение:

3.1415926535897931

Если надо сто цифр после запятой, то можно, скажем, так:

import fractions

π=fractions.Fraction('3.141592653589793\

2384626433832795...')

Вместо троеточия - цифры до сотой после запятой. Объекты класса fractions можно складывать, вычитать, умножать, делить, сравнивать и превращать в другие типы (например, в тип decimal.Decimal). А если надо производить над π функциональные операции, то и функции можно сделать рационально-дробными или же, допустим, того же типа decimal.Decimal.
P.S.А вычисление числа π - это, наверно, идиотская шутка или просто издевательство. Зачем его вычислять, когда уже готовое значение можно взять из Википедии ?
BB
Bek Bek
28 648
Способа "получить верное число Pi" нет.
Получить приближение "хотя бы до 100й цифры после запятой" можно. Хотя бы нагуглив. При вычислениях не использовать float, использовать Decimal.

ЗЫ. А где такая точность нужна, если не секрет?
Лебедев Александр В задачке) Нужна функция, которая принимает int n и выдает цифру на n-й позиции после запятой
import math

print(math.pi)