Страницы

Поиск по вопросам

понедельник, 10 февраля 2020 г.

Упрощенное/приближённое представление чисел с плавающей точкой как дробей в SymPy

#python #sympy


Как представить в 8/9 * x или 8 * x/9 с помощью методов sympy след. выражение? Как
показывает пайтон так точнее и самому приятнее смотреть :)

0.888888888888889 * x

    


Ответы

Ответ 1



import sympy x = sympy.Symbol('x') print(sympy.nsimplify(0.888888888888889 * x)) Вывод: 8*x/9 http://docs.sympy.org/0.7.1/modules/simplify/simplify.html#nsimplify

Ответ 2



Вариант без sympy: from fractions import Fraction x = 1000 # лимит точности print(Fraction(1.0616666666666668).limit_denominator(x)) >>> 637/600 # если x == ∞ >>> 396/373 # если x == 400 >>> 241/227 # если x == 300 В sympy точность измеряется в параметре tolerance nsimplify(pi, tolerance=0.01)

Комментариев нет:

Отправить комментарий