次のように小数をルートに変換できるモジュールがあるかどうかを知りたいです。
>>> x = 1.7320508075688772
>>> f(x)
'√3'
文字列として。あなたが私を助けてくれることを願っています。
あなたが何を求めているかを正しく推測したと仮定すると、sympy.nsimplify
[docs]を使用して番号を特定し、単純化できます (これは、舞台裏のidentify
機能を使用します)。mpmath
>>> import sympy
>>> sympy.nsimplify(1.7320508075688772)
sqrt(3)
しかし、精度と偽の識別に関連する多くの警告があります。
math
モジュールを使用して、このようなもの:
In [16]: strs="1,7320508075688772"
In [17]: num=float(".".join(strs.split(",")))
In [19]: math.ceil(num**2)
Out[19]: 3.0
同様に:
In [25]: math.ceil(1.414**2)
Out[25]: 2.0
In [26]: math.ceil(2.23606**2)
Out[26]: 5.0
In [28]: math.ceil(1.7320508075688772**2)
Out[28]: 3.0