11
votes

Fonction de plafond de type Excel dans Python?

Je sais sur math.ceil et Numpy.Ceuil , mais tous les deux manquent d'importance paramètre. Par exemple dans Excel:

= plafond (210.63, 0,05) -> 210.65

Numpy.Ceuil et Math.Ceuil en revanche:

numpy.ceil (210.63) -> 211.0

math.ceil (210.63) -> 211.0

Alors, je me demande, y a-t-il déjà un peu similaire à la solution d'Excel?


0 commentaires

3 Réponses :


11
votes

Je ne connais aucune fonction python à le faire, mais vous pouvez facilement coder un: xxx

la conversion au flotteur est nécessaire dans Python 2 pour éviter la division entière si Les arguments sont des entiers. Vous pouvez également utiliser à partir de la division d'importation __Future__ . Ce n'est pas nécessaire avec Python 3.


3 commentaires

Comment cela pourrait-il être si évident et que je n'y ai pas pensé O_O. Merci.


CEIL (212, 10) Retours 210 Même il doit renvoyer 220 . Dans Python 2.x, la division INTEGER est par défaut sur INTEGERES. J'ai eu un problème de similiaire (mais pas tout à fait pareil) dans ma réponse et j'ai dû forcer la division de flotteur en utilisant 1.0.


Vous avez raison, je n'y pensais pas parce que je code principalement avec Python3 maintenant. J'ai édité la réponse pour forcer la conversion pour flotter.



0
votes

Ce que vous pouvez faire est celui-ci.

ceil = lambda x,y: math.ceil(x*(1.0/y))/(1.0/y)


0 commentaires

0
votes

Il existe un certain nombre de bibliothèques qui ont mis en œuvre beaucoup de formules Excel dans Python.

Bibliothèques telles que PYCEL, FORMULAS, XLCALCULATEUR ET KOALA Utilisez une AST à traduire des formules Excel en Python et ont donc généralement un python prêt à l'emploi la mise en œuvre de fonctions à des degrés divers de «Comment Excel calcule les choses» (par opposition à la manière dont cela pourrait être fait ailleurs). À tout le moins, il existe des idées sur la manière de mettre en œuvre ces fonctions ou d'utiliser ces fonctions qui ont déjà défini les fonctions déjà définies.

Je suis le propriétaire du projet de XLCalculator, donc je vais utiliser cette bibliothèque dans une démonstration. Cela dit que les autres bibliothèques sont bien capables de cette tâche particulière. Chaque bibliothèque a un héritage différent et a donc des forces différentes et prennent en charge différentes fonctions Excel.

généralement Les bibliothèques mentionnées ci-dessus ont lu un fichier Excel, traduisent les formules en Python, puis fournit des fonctionnalités à évaluer. XLCalculator peut également analyser une dicte spécialement conçue qui est ce que je tiens à ce que je profite ici.

stackoverflow.py: xxx

résulte; xxx


0 commentaires