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。