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 :

explication synthaxe "F"


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut explication synthaxe "F"
    Bonjour

    J'ai trouvé cette fonction
    http://msdn.microsoft.com/en-us/library/yhwsaf3w.aspx

    ou le passage des arguments à la fonction (des floats) sont notés x.yF

    je comprends bien que cela "force" l'argument à être un float plutot qu'un double mais je n'arrive pas à comprendre le pourquoi du comment et mettre de vrais nom devant ce que vais cette notation.

    Merci par avance pour vos lumières

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    C'est un reliquat du temps où les processeurs mettait plus de temps à calculer les doubles que les floats. Ce n'est plus vrai depuis de nombreuses années.
    Maintenant, la seule vraie différence c'est sur la taille en mémoire : le double prend deux fois plus de place, car 2 fois plus de précision (2 fois plus de digits).

    Mais même dans le cas de la mémoire, sauf si tu en as une collection très volumineuse, tu n'auras pas je pense de grosse différence.

  3. #3
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Bonjour

    Merci mais ca javais bien compris, dans mon cas j'ai besoin de float pour passer des paramètres a une carte electronique pour qui le double est un monstre insurmontable...

    Ma question porte sur la synthaxe "F", est ce juste une autre écriture de float.xxxx ?

    Merci

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    c'est surtout que quand on écrit un nombre dans le code, le compilateur doit lui fournir un type
    on peut alors spécifier f pour float d pour décimal (...) pour spécifier le type en restant avec juste l'écriture du nombre
    avec un peu de chance 5x5 retourne un int alors que 5.2*5 va retourner un double
    on peut alors spécifier 5dx5d pour avoir un double

    l'utilisation est rarement utile, ca l'est dans des cas où on ne passe par rien de typé, comme pour le value d'un sqlparameter de type sql_variant
    mais si on appelle une fonction qui demande un float, le compilateur va alors typer les nombres sur le bon type je pense

    c'est utile par contre pour les fonctions qui demande un char et qu'on veut écrire le char dans un string pour ne pas s'embeter
    sans le "c" ca va générer une erreur car un string ne peut pas rentrer dans un char
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Autant pour moi, je croyais que ta question était : "Pourquoi forcer l'utilisation de floats au lieu de doubles ?"

    Comme Pol63 vient de le dire, implicitement la conversion ne sait pas forcément, du coup, tu peux te retrouver avec des doubles.

    Puisque tu es dans un cas où c'est coûteux pour le processeur, il faut effectivement que tu précises "F" pour ne pas avoir de doubles. Sinon, tu auras des doubles en mémoire, qui, par exemples, seront transtypés au moment de l'appel à une fonction qui prend des floats en paramètre, ce qui n'est pas souhaitable a priori.

  6. #6
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    on peut alors spécifier f pour float d pour décimal (...) pour spécifier le type en restant avec juste l'écriture du nombre
    C'est plutôt d pour double et m pour decimal

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    Citation Envoyé par _Max_ Voir le message
    C'est plutôt d pour double et m pour decimal
    arf
    en même temps je l'ai utilisé qu'une fois ... (et j'ai mis un d pensant à decimal )

    edit je ne m'étais pas trompé, dans mon cas (vb.net) c'est bien d pour décimal (dixit msdn)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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