Julia有内置常量pi
,类型为Irrational
。
julia> pi
π = 3.1415926535897...
julia> π
π = 3.1415926535897...
julia> typeof(pi)
Irrational{:π}
来自具有N()
功能的SymPy,我想评估pi
(或其他Irrational
,例如e
,golden
等等。)到n位数。
In [5]: N(pi, n=50)
Out[5]: 3.1415926535897932384626433832795028841971693993751
这可能吗?我假设pi
基于其数学定义,而不仅仅是十三个小数位。
答案 0 :(得分:16)
当然,您可以设置BigFloat
精度并使用big(π)
。注意精度是二进制的;它以位数计算。如果将精度设置为所需位数的至少log2(10) + 1
倍,则应该是安全的。
示例:
julia> setprecision(BigFloat, 2000) do
@printf "%.200f" big(π)
end
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196
在这里,我将精度设置为仅需要200位数的高度。
数字在GNU MPFR库中计算。
答案 1 :(得分:10)
Julia有SymPy package的界面:
# Pkg.add("SymPy") ## initial installation of package
using SymPy
julia> N(PI, 50)
3.14159265358979323846264338327950288419716939937508
请注意,SymPy使用大写PI
将其对象与原生Julia中的小写pi
区分开来。您还需要在计算机上安装本机SymPy才能在此处获得完整功能。
其他评论: