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

JavaScript Discussion :

Arrondir 550 supérieur ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Par défaut Arrondir 550 supérieur ?
    Bonjour,

    je cherche désespérément une formule pour arrondir un nombre entier à la 500e supérieur. Exemple : 650 = 1000, 1250 = 1500, 2850 =3000.
    Un idée ?

    Merci d'avance

    Salutations à tous.

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Idée 1 :
    divise par 500, arrondis avec Math.ceil et re-multiplie par 500. Mais ça peut poser des problèmes de précision dûs au format de nombres à virgule flottante.

    Idée 2 :
    Utilise le modulo (x % 500) et rajoute 500 après. Attention avec les nombres négatifs, le modulo part dans l'autre sens.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    Avec le modulo, ça donne ça ... en premier jet ... J'ai peut-être pas pensé à tous les cas, c'est sûrement optimisable
    Poste nous ta solution optimisée

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    function arrondirA500(n) {
      return n % 500 === 0 && n !== 0 ? n : ( n === 0 ? 500 : n - (n % 500) - (n<0 ? 500 : -500) );
    }
     
    console.log(arrondirA500(650)); // 1000
    console.log(arrondirA500(1250)); // 1500
    console.log(arrondirA500(2850)); // 3000
     
    console.log(arrondirA500(2499)); // 2500
    console.log(arrondirA500(2500)); // 2500
    console.log(arrondirA500(2999)); // 3000
    console.log(arrondirA500(3000)); // 3000
    console.log(arrondirA500(3001)); // 3500
     
    console.log(arrondirA500(-1000)); // -1000
    console.log(arrondirA500(-499)); // -500
    console.log(arrondirA500(-501)); // -1000
    console.log(arrondirA500(-1)); // -500
     
    console.log(arrondirA500(0)); // 500

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    ah on ne joue pas au golf ?

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function arrondirAX( X, n ){
        var x = Math.abs( X );
     
        return ( n % x == 0 ) ? n : ( Math.abs( n ) == 0 ? n : n - ( n % x ) - ( n < 0 ? x : -x ) );
    }
     
    console.log( 0, arrondirAX( 500, 0 ) ); // 0 !  
    console.log( -0, arrondirAX( 500, -0 ) ); // 0 !  
     
    console.log( 0, arrondirAX( -0, 0 ) ); // 0 !  
    console.log( -0, arrondirAX( 0, -0 ) ); // 0 !  
     
    console.log( -20, arrondirAX( 2, -20 ) ); // -20 
    console.log( -20, arrondirAX( 5, -20 ) ); // -20  
     
    console.log( 20, arrondirAX( 2, 20 ) ); // 20
    console.log( 20, arrondirAX( 5, 20 ) ); // 20 
     
    console.log( 19, arrondirAX( 2, 19 ) ); // 20 
    console.log( 14, arrondirAX( 5, 14 ) ); // 15 
     
    console.log( -19, arrondirAX( 2, -19 ) ); // -20 
    console.log( -14, arrondirAX( 5, -14 ) ); // -15

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Par défaut Genial !!!
    Bonjour et merci les amis, j'ai testé toutes les solutions et ça fonctionne... vraiment génial !!!

    Encore merci et bonne journée à vous tous.

    Cordialement

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    EN 2005 on avait déja résolu le problème ^^
    http://www.developpez.net/forums/d68...centimes-pres/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Rechercher un nombre et arrondir au supérieur
    Par hugohours1993 dans le forum Excel
    Réponses: 8
    Dernier message: 23/06/2015, 08h28
  2. Arrondir au supérieur
    Par Thesum dans le forum VB.NET
    Réponses: 2
    Dernier message: 07/04/2008, 15h40
  3. arrondir à l'unité supérieur
    Par ericmart dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2006, 14h23
  4. Comment arrondir à l'entier supérieur ?
    Par kuranes dans le forum Access
    Réponses: 3
    Dernier message: 29/11/2005, 17h42
  5. Arrondir à la dizaine supérieure
    Par laurent35 dans le forum Access
    Réponses: 3
    Dernier message: 28/11/2005, 14h37

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