在xlwings中实现高精度cumsum自定义函数(UDF)的技术咨询
xlwings 高精度累加和(cumsum)自定义函数问题
我需要在xlwings中实现一个计算累加和(cumsum)的自定义函数(UDF):
- 现有基于pandas的
xl_Correl_1函数可正常运行,但仅支持float数据类型 - 需要处理的高精度数值如下:
- 1.41421356237309504880168872421
- 1.41421356237309504880168872421
- 2.82842712474619009760337744842
- 4.24264068711928514640506617263
为实现高精度计算,我尝试用decimal库编写了xl_Correl_2函数,但不确定写法是否正确,希望得到专业反馈。
现有代码
原float类型支持的函数
import pandas as pd @xw.func @xw.arg('x', pd.DataFrame, index=False, header=False) @xw.ret(index=False, header=False) def xl_Correl_1(x): return x.cumsum()
尝试的高精度函数
import decimal from decimal import Decimal decimal.getcontext().prec = 30 @xw.func @xw.arg('x', pd.DataFrame.apply(Decimal), index=False, header=False) @xw.ret(index=False, header=False) def xl_Correl_2(x): return str(x.cumsum())
内容的提问来源于stack exchange,提问作者Skip
相关产品推荐
相关产品推荐

