python中类似Excel的天花板函数?
我知道和,但它们都缺乏python中类似Excel的天花板函数?,python,excel,math,ceil,Python,Excel,Math,Ceil,我知道和,但它们都缺乏重要性参数。 例如,在Excel中: =天花板(210.63,0.05)->210.65 另一方面,numpy.ceil和math.ceil: numpy.ceil(210.63)->211.0 math.ceil(210.63)->211.0 因此,我想知道,是否已经有类似于Excel的解决方案了?我不知道有任何python函数可以这样做,但您可以很容易地编写一个: import math def ceil(x, s): return s * math.ceil
重要性
参数。
例如,在Excel中:
=天花板(210.63,0.05)
->210.65
另一方面,numpy.ceil和math.ceil:
numpy.ceil(210.63)
->211.0
math.ceil(210.63)
->211.0
因此,我想知道,是否已经有类似于Excel的解决方案了?我不知道有任何python函数可以这样做,但您可以很容易地编写一个:
import math
def ceil(x, s):
return s * math.ceil(float(x)/s)
在python 2中,如果两个参数都是整数,则必须将其转换为浮点,以避免整数除法。您还可以使用来自未来导入部门的
。Python3不需要这样做。您可以这样做
ceil = lambda x,y: math.ceil(x*(1.0/y))/(1.0/y)
但是它不是万无一失的。有许多库已经在Python中实现了许多Excel公式
PyCel、Formulas、xlcalculator和Koala等库使用AST将Excel公式转换为Python,因此通常都有现成的Python函数实现,以实现不同程度的“Excel计算方式”(而不是在其他地方)。至少有一些想法是关于如何实现这些功能,或者可能使用那些已经定义了功能的功能
我是xlcalculator的项目所有者,因此我将在演示中使用该库。也就是说,其他图书馆很有能力完成这项特殊任务。每个库都有不同的遗产,因此它们有不同的优势,支持不同的Excel功能
通常,上述库读取Excel文件,将公式转换为Python,然后提供评估功能。Xlcalculator还可以解析一个特制的dict,这正是我在这里利用的优势
stackoverflow.py:
input\u dict={
活页1!A1:“=天花板(210.63,0.05)”
}
从xlcalculator导入模型编译器
从xlcalculator导入模型
从xlcalculator导入计算器
编译器=模型编译器()
my_model=compiler.read_和parse_dict(输入_dict)
evaluator=evaluator(我的_模型)
打印(“Sheet1!A1”,evaluator.evaluate(“Sheet1!A1”))
导致
>python stackoverflow.py
Sheet1!A1 210.66
这怎么会如此明显,我没有想到。谢谢。ceil(212,10)
返回210
即使它应该返回220
。在Python2.x中,整数除法默认为整数。我在回答中遇到了一个类似的问题(但不完全相同),不得不使用1.0强制进行浮点除法。你是对的,我没有考虑到这一点,因为我现在主要使用python3编写代码。我编辑了答案以强制转换为float。