如何指定Sympy.pretty_print的打印输出精度?
以下是几种仅控制SymPy打印输出精度、不修改数值本身存储精度的实现方法:
方法1:数值转换时指定精度
sp.N()和evalf()方法均支持传入第二个参数指定有效数字位数,仅对本次转换输出生效:
import sympy as sp sp.init_printing() a = sp.pi # 输出4位有效数字 sp.pprint(sp.N(a, 4)) # 等价写法,使用evalf方法 sp.pprint(a.evalf(4))
上述代码运行后将输出3.142。
方法2:全局配置默认打印精度
如果希望所有打印操作默认使用统一精度,可以在init_printing方法中指定precision参数,该参数仅控制显示逻辑,不会修改数值存储规则:
import sympy as sp # 全局设置默认打印精度为3位有效数字 sp.init_printing(precision=3) a = sp.pi sp.pprint(sp.N(a)) # 自动输出3位有效数字3.14
方法3:单次打印临时指定精度
不需要修改全局配置时,也可以在调用pprint时临时传入precision参数,仅对本次打印生效:
import sympy as sp sp.init_printing() a = sp.pi # 单次打印指定5位有效数字 sp.pprint(sp.N(a), precision=5) # 输出3.1416
内容的提问来源于stack exchange,提问作者Tarnarmour
相关产品推荐
相关产品推荐

