Julia中ArbNumerics无法设置250位高精度的问题求助
ArbNumerics包高精度设置失效的解决方法
ArbNumerics的精度机制和BigFloat不同,全局setprecision()只对BigFloat生效,要给ArbFloat设置精度,可采用以下两种方式:
方法一:全局设置ArbFloat默认精度
using ArbNumerics # 设置ArbFloat的默认精度为900位(约对应270位小数,满足250位需求) setprecision(ArbFloat, 900) b = ArbFloat("1.0000000000000000000000000000001") println("b:", b) # 验证当前精度 println("精度位数:", precision(b))
方法二:直接创建指定精度的ArbFloat实例
如果不想修改全局默认精度,可直接在构造时指定精度参数:
using ArbNumerics # 构造900位精度的ArbFloat实例 b = ArbFloat{900}("1.0000000000000000000000000000001") println("b:", b)
关键说明
- ArbFloat的精度由类型参数控制,每个实例的精度绑定到其类型的位数参数,Base模块的全局
setprecision()不会对它生效。 - 900位二进制精度换算为十进制约270位小数,完全覆盖你需要的250位精度要求。
内容的提问来源于stack exchange,提问作者Tomaz
相关产品推荐
相关产品推荐

