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

avec Java Discussion :

un float random entre 2 float


Sujet :

avec Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Par défaut un float random entre 2 float
    Bonjour a tous
    Je voudrais un float aléatoire entre 2 float.
    J'y arrive comme cela mais c'est idiot d'utiliser des int pour avoir des float.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private float randRange(int min, int max) {
      Random r = new Random(); 
      int x = min + r.nextInt(max - min);
      float res = (float) x;
      return res;
    }
    J'ai tenté truc du genre?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private float randRange(float min, float max) {
      Random r = new Random(); 
      float x = min + r.nexFloat(max - min);
      return res;
    }
    mais j'ai une erreur :
    La méthode nextFloat() du type Random ne s'applique pas aux arguments
    (float)

    comment faire?
    ++

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    L'erreur est tout à fait normal puisque la méthode n'existe pas ! La méthode nextFloat() ne prend pas de paramètre et renvoi une valeur entre 0.0 et 1.0...

    Pour générer un float entre deux valeur il suffit de multiplier le résultat par la différence entre les deux et d'y ajouter la plus petite, c'est à dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	private float randRange(float min, float max) {
    		Random r = new Random();
    		return min + r.nextFloat() * (max - min);
    	}

    Toutefois je pense qu'il n'est pas très bien de créer un nouvel objet Random à chaque appel. Tu pourrais remplacer cela par un appel à Math.random() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	private float randRange(float min, float max) {
    		return min + (float)Math.random() * (max - min);
    	}

    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Par défaut
    ha comme cela, effectivement, c'est mille fois plus léger.
    merci

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

Discussions similaires

  1. mapping entre un float (java) et MYSQL
    Par flamant dans le forum MySQL
    Réponses: 2
    Dernier message: 15/06/2009, 07h49
  2. Limiter décimals float en entrée
    Par Yunchi dans le forum Débuter
    Réponses: 14
    Dernier message: 07/04/2009, 11h25
  3. random entre -1 et 1 ?
    Par bigupgza37 dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2008, 19h24
  4. Random entre 0 et 99999
    Par Polux000 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 10/11/2008, 16h00
  5. Quelle est la différence entre le float et le real ?
    Par Manson dans le forum Débuter
    Réponses: 3
    Dernier message: 10/08/2004, 17h26

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