IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Arrondi inférieur par tranche


Sujet :

Python

  1. #1
    Membre averti Avatar de jpbontront
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Par défaut Arrondi inférieur par tranche
    Bonjour à toutes et tous,

    Voila mon problème, j'ai des poids, en décimal, variant de 0.100 kg à + de 1 500 kg.
    J'ai une grille de prix (C'est pour le calcul du transport routier), qui utilise un prix de base par tranche de 25, 50 ou 100 kg.
    Exemple :
    Pour un poids compris entre 100 kg et 999 kg, nous avons une grille de prix de base pour 100, 200, 300, 400, 500, 600, 700, 800 et 900 kg auxquels nous ajoutons un prix par kg supplémentaire.
    La palette pèse : 634,500
    Le poids de référence sera : 635 kg (math.ceill())
    La tranche à utiliser sera de 600 kg : 82,50 €
    Le prix par kg supplémentaire sera de 0,22 €

    Mon problème est de savoir quel sera la tranche utilisée (dans l'exemple 600), puisque mon colis fait 635 kg (poids de référence), en sachant que la tranche peut être de 25 kg, 50 kg, 100 kg, 250 kg, suivant le poids de référence et la grille a utiliser.

    J'espère que j'ai été clair et dans l'attente d'avoir votre aide.
    Cordialement

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 186
    Par défaut
    Hello,

    Selon quelle règle précise déterminez-vous la valeur de la tranche à utiliser (25, 50, 100, ou 250 kg) ?
    Votre problématique indique que ce choix dépend "du poids de référence et de la grille à utiliser". Cette règle métier doit être formalisée.

    Exemple de règle :
    • Si le poids de référence est entre 0 et 99 kg, la tranche est de 25 kg.
    • Si le poids de référence est entre 100 et 999 kg, la tranche est de 100 kg.
    • Si le poids de référence est supérieur ou égal à 1000 kg, la tranche est de 250 kg.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre averti Avatar de jpbontront
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Par défaut
    Merci déjà d'avoir pris le temps de me répondre.

    J'ai très largement simplifié les choses.
    Les conditions de recherche de tranches suivant le poids se fait par rapport à des grilles tarifaires envoyées par les transporteurs.
    Je pense que je vais surement créer une petite fonction à laquelle je vais envoyer le poids et l’intervalle des tranches pour me retourner la valeur attendue.
    Je pensais qu'il existait peut-être une fonction déjà présente et que je ne connaissais pas.

    Ce que je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import math
     
    def definirPlancher(poids, interval):
        for i in range(math.ceil(poids / interval)):
            if (i + 1) * interval >= math.ceil(poids) :
                return i * interval
     
    print(definirPlancher(681.25, 25))

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 186
    Par défaut
    Donc si j'ai un poids de 700 kg, par intervalle de 25 kg, je trouve ... ? Pour moi ça serait 700, mais pour vous ça semble être 675 kg
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 072
    Par défaut
    Citation Envoyé par jpbontront Voir le message
    Merci déjà d'avoir pris le temps de me répondre.

    J'ai très largement simplifié les choses.
    Les conditions de recherche de tranches suivant le poids se fait par rapport à des grilles tarifaires envoyées par les transporteurs.
    Je pense que je vais surement créer une petite fonction à laquelle je vais envoyer le poids et l’intervalle des tranches pour me retourner la valeur attendue.
    Je pensais qu'il existait peut-être une fonction déjà présente et que je ne connaissais pas.

    Ce que je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import math
     
    def definirPlancher(poids, interval):
        for i in range(math.ceil(poids / interval)):
            if (i + 1) * interval >= math.ceil(poids) :
                return i * interval
     
    print(definirPlancher(681.25, 25))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def definirPlancher(poids, interval):
        return poids//interval*interval
     
    print(definirPlancher(681.25, 25))
    #675

Discussions similaires

  1. regroupement par tranche horaire
    Par Tiresia dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2007, 10h50
  2. [Requête]Recherche par tranche
    Par cguedj dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 19/04/2007, 16h21
  3. [9i] découpage par tranche
    Par sygale dans le forum Oracle
    Réponses: 1
    Dernier message: 25/07/2006, 15h11
  4. Récupérer des enregistrements par tranche horaire
    Par olive_le_malin dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 19/05/2006, 16h53
  5. Regroupement par tranche dans une requete SQL (MS SQL)
    Par AODRENN dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/03/2006, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo