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

ASP.NET Discussion :

Petite problème de compréhension sur l'arrondi du Cint


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut Petite problème de compréhension sur l'arrondi du Cint
    Bonjour à tous.

    J'ai bien elu la MSDN sur le sujet, mais j'ai du mal à suivre.
    Je dois faire une division pour découper en page de 12 une ensemble de donéne venant de la base pour trouver la borne max.
    Donc si j'ai 34 éléments, je dois avoir 3 comme résultat et si j'ai 38 je dois avoir 4 comme résultat.

    Il se trouve que j'ai 4 dans les deux cas.

    Pour arriver à mes fins je procède de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CInt(Session("SES_NbNews") / 12) + 1
    La variable de session est chargée par le résultat d'une requête qui compte.

    J'ai fini par comprendre que la conversion en entier arrondissait selon les règles mathématiques de base, donc au plus proche.

    Mais je ne trouve pas le moyen de le faire arondir à l'entier inférieur, quoi qu'il arrive.

    Avez vous une idée ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Pour arrondir à l'entier supérieur, il faut utiliser Math.Ceiling(), et pour arrondir à l'entier inférieur, regarde du côté de Math.Floor().

    [EDIT] : Une autre option consiste à ne pas passer par CInt mais plutôt quelque chose du genre :

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim val1 = Int(38 / 12)
    Dim val2 = (val1 + 1)
    Console.WriteLine(val1)
    Console.WriteLine(val2)

    Là, tu obtiendras bien 3 avec 34 ou 4 avec 38, comme tu le souhaites.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide.

    Math.Floor, je connaissais pas.
    Mais en traitant la chose avec cette nouvelle information je m'aperçois que je dois avoir un poblème de conception.

    Tant que la valeur n'est aps un multiple de 12 tout va bien, mais si je tombe sur 36 (par exemple), je suis embêté avec le +1 qui me colle une page vide.
    Et c'est normal sauf que je vois pas bien comment je vais contourner ce souci.

    Mais là, je crois que cela relève de ma conception de la chose qui n'est au top.

    Pas simple de faire une pagination dans une page web !!!

    Avec ton édite, je tiens peut-être une piste ou alors je vais passer par un modulo, mais je maitrise pas bien cette fonction.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Pas simple de faire une pagination dans une page web !!!
    C'est clair que ce n'est pas évident ! As-tu regardé des projets existants pour voir comment ils ont géré le point qui te pose problème ?

    Sinon, tu peux aussi faire en sorte que si tu ne tombes pas sur un multiple de 12, tu ne fais pas +1...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci, tu viens de m'éclairer totalement.
    Au lieu de m'acharner à faire un calcul je dois simplement monter une varaible de session qui me donne mon nombre de page.
    Et comme tu dis, je teste ma chose en prenant en comtpe les cas de multiple de douze ou les arrondis.

    Sinon, je n'ai pas fais de recherche sur les projets existants, j'y arrive jamais.
    Mais ton lien m'envoi sur la apge Google de base, pas sur la recherche.

    Merci à toi.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  6. #6
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Bonjour,

    Tu peux aussi essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int a = 38, b = 12, reste;
    int res = Math.DivRem(a, b, out reste) + (reste == 0 ? 0 : 1);
    Bon dév.
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

Discussions similaires

  1. Petit problème de requête sur une arborescence.
    Par grandpa006 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/03/2008, 09h29
  2. Réponses: 1
    Dernier message: 31/08/2007, 09h23
  3. petit problème d'affichage sur un datagridview
    Par boss_gama dans le forum C#
    Réponses: 5
    Dernier message: 01/05/2007, 21h42
  4. Petit problème de compréhension d'une ligne de code
    Par totoc1001 dans le forum Images
    Réponses: 3
    Dernier message: 12/03/2007, 21h44
  5. Petit problème de conception sur access
    Par coooookinette dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/12/2005, 18h24

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