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

C# Discussion :

Méthode cherchant un nombre decimal ou double aléatoire


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 28
    Points : 19
    Points
    19
    Par défaut Méthode cherchant un nombre decimal ou double aléatoire
    Bonjour,

    Je cherche un moyen de calculer un nombre aléatoire(de type double).
    En regardant sur MSDN Library j'ai vu que Random avait la methode NextDouble mais le problème c'est qu'elle se limite entre 0 et 1.
    Es ce que vous connaissez un objet du framework.NET qui propose une méthode qui puisse fournir un nombre aléatoire(de type double) selon l'intervalle désiré?

    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    A ma connaissace rien de tel dans le framework.
    Mais tu peux utiliser quelque chose comme ça peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    static readonly Random random = new Random();
     
    static double NextDouble(double a, double b)
    {
        return (b - a) * random.NextDouble() + a;
    }
    L'intervalle de random.NextDouble() est [0, 1].
    La multiplication effectue la mise à l'échelle : [0, b - a].
    Enfin l'addition effectue la translation : [a, b].

    Pour que ce soit plus pratique à utiliser je te conseille d'écrire une méthode d'extension sur la classe Random :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    static class RandomExtensions
    {
        public static double NextDouble(this Random random, double a, double b)
        {
            return (b - a) * random.NextDouble() + a;
        }
    }
    Comme ça tu peux tout simplement écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    static void Main(string[] args)
    {
        Random random = new Random();
     
        Console.WriteLine(random.NextDouble(-10, 10));
    }
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Merci!

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

Discussions similaires

  1. [VB.Net] Convertir un nombre au format double en date
    Par Immobilis dans le forum ASP.NET
    Réponses: 6
    Dernier message: 14/11/2005, 15h34
  2. [C#]saisir que un nombre decimal dans 1 textBox
    Par mcay dans le forum Windows Forms
    Réponses: 25
    Dernier message: 04/11/2005, 15h43
  3. [ABAP] Convertir nombre decimal en binaire
    Par danael dans le forum SAP
    Réponses: 3
    Dernier message: 04/04/2005, 12h17
  4. Méthode optimale gestion nombre variable items?
    Par fredtheman dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 14/08/2004, 20h19
  5. definir un nombre decimal sur 2 numero max apres la vergule
    Par nil dans le forum Bases de données
    Réponses: 5
    Dernier message: 25/02/2004, 21h49

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