none
deux chiffres après la virgule(Urgent) RRS feed

  • Question

  • Salut;

    j'ai un champ dans ma BD sql server de type decimal(6,2) 

    alors lorsque j'execute la requette suivante :

    select avg(Moyenne_bac) as[Moyenne Générale] from Etudiante
    

    le resultat s'affiche comme suit 13.678222

    comment faire afin d'afficher deux chiffres après la virgule comme 13.67

    vendredi 1 mai 2015 20:43

Réponses

  • Bonjour,

    J'ai installer MS SQL et créé une table :

    Et ensuite deux select :

    On constate que mon premier select est formaté et qu'il affiche bien les deux premières décimales et que le deuxième select affiche le résultat avec toutes les décimales.


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    • Marqué comme réponse Khawla.Dev dimanche 3 mai 2015 22:20
    dimanche 3 mai 2015 21:16

Toutes les réponses

  • Bonjour,

     

    Dim val AsDouble val = 12.563 val = Math.Round(val, 2)

    Résultat : 12.56

     


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    vendredi 1 mai 2015 22:11
  • oui j'ai utilisé cette fonction mais il fait l'arrondissement moi je veux que le résultat ne change plus juste je veux qu' il affiche deux nombres après la virgule , ainsi arrondissement va afficher le resultats 13.680000.
    vendredi 1 mai 2015 22:28
  • Bonjour,

    Vite fait...

    Dim val AsDouble

    Dim valFormat AsString val = 12.549 Dim posn AsInteger = 0 valFormat = val.ToString posn = valFormat.IndexOf(",") valFormat = valFormat.Substring(0, posn + 3)

        


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    vendredi 1 mai 2015 23:09
  • votre solution est me semble bien dès ma lecture du code .mais il est très compliqué pour un petit astuce que je vois qu'il doit etre résoulu seulement avec qq  qui est simple car j'utilise une requette donc la solution doit etre imbriqué dans cette requette.
    vendredi 1 mai 2015 23:19
  • Bonjour,

    Plus habitué Oracle... mais

    Exemple trouvé :

    SELECT TOP(5)CurrencyRateID, EndOfDayRate
                ,FORMAT(EndOfDayRate, 'N', 'en-us') AS 'Number Format'
                ,FORMAT(EndOfDayRate, 'G', 'en-us') AS 'General Format'
                ,FORMAT(EndOfDayRate, 'C', 'en-us') AS 'Currency Format'
    FROM Sales.CurrencyRate
    ORDER BY CurrencyRateID;

    Voici l'ensemble des résultats.

    CurrencyRateID EndOfDayRate  Numeric Format      General Format  Currency Format
    --------------      ------------       --------------           --------------      ---------------
    1                     1.0002             1.00                        1.0002             $1.00
    2                     1.55                 1.55                        1.5500            $1.55
    3                     1.9419             1.94                        1.9419            $1.94
    4                     1.4683             1.47                        1.4683            $1.47
    5                     8.2784             8.28                        8.2784            $8.28

    Source : https://msdn.microsoft.com/fr-ca/library/hh213505.aspx


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci


    vendredi 1 mai 2015 23:44
  • Bonjour,

    À essayé... je n'ai pas MS SQL chez moi !

    Use Str() Function. It takes three arguments(the number,
    the number total characters to display, and the number of decimal
    places to display

      Select Str(12345.6789, 12, 3)

    displays:  '   12345.679'  ( 3 spaces, 5 digits 12345, a decimal
    point, and three decimal digits (679). - it rounds if it has to
    truncate, (unless the integer part is too large for the total size, in
    which case asterisks are displayed instead.)

    for a Total of 12 characters, with 3 to the right of decimal point.


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    vendredi 1 mai 2015 23:48
  • merci mais je travail avec SGBDR sql server .ainsi je vous informe que ma requette va affiché le avg(moyen_bac) de tous les étudiants sachant que chaque étudiant possède un champ nommé moyen_bac de type decimal(6,2)

    le résultat s'affiche oui mais avec plus que 2 chiffres après la virgule;comment contrôler ma requette de faite qu'elle affiche 2 chiffres seulement après la virgule?? c'est ça ma question

    samedi 2 mai 2015 22:50
  • En C#, j'aurais écris :

    string maValeurEnChaine = "13.4567880";
    int maValeurEnInt = maValeurEnChaine.ToString ("0.00");

    samedi 2 mai 2015 23:04
  • bonjour,

    avez-vous essayer ceci :

    En vb.net :

    Dim valeur As String = "13.4567880"
            TextBox1.Text = valeur.Substring(0, 5)

    ou

     Dim valeur As String = "13.4977880"
            TextBox1.Text = Format(Val(valeur), "00.00")
    
    Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If e.KeyChar = "." Then
                e.KeyChar = CChar(",")
            End If
        End Sub
    

    ou

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim nombre As Double = 12.34567
            TextBox1.Text = nombre.ToString("0.00")
        End Sub
    
        Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If e.KeyChar = "." Then
                e.KeyChar = CChar(",")
            End If
        End Sub

    A vous de choisir

    cordialement,



    • Modifié zorro591 dimanche 3 mai 2015 09:06
    dimanche 3 mai 2015 08:29
  • Merci pour tous vos réponses;mais il me semble que vous n'avez pas encore compris mon problème.

    alors moi je veux afficher le résultat dans un tableau en utilisant la requette suivante :

    select min(Moyenne_bac) as [Moyenne Min] ,max(Moyenne_bac) as [Moyenne Max],avg(Moyenne_bac) as[Moyenne Générale] from Etudiante
    

    alors il m'affiche comme suit:

    moi je ne veux pas 

    dimanche 3 mai 2015 11:05
  • Bonjour,

    tu peux faire :

    select min(Moyenne_bac) as [Moyenne Min] ,max(Moyenne_bac) as [Moyenne Max],avg(Moyenne_bac) as[Moyenne Générale.Substring(0, 5)] from Etudiante

    cordialement,

    dimanche 3 mai 2015 11:50
  • merci Zorro pour votre réponse imediate je pense que vous voulez dire de faire comme suit
    select min(Moyenne_bac) as [Moyenne Min] ,max(Moyenne_bac) as [Moyenne Max],avg((Moyenne_bac).Substring(0, 5)) as[Moyenne Générale] from Etudiante
    
    il me dit que( Impossible d'appeler des méthodes sur decimal.)
    dimanche 3 mai 2015 12:05
  • salut,

    as-tu essayer ((Moyenne_bac).tostring("0.00"))

    cordialement,

    dimanche 3 mai 2015 12:30
  • tostring c'est pas une fct sql il existe dans le vb
    dimanche 3 mai 2015 12:39
  • Pourrais-tu montrer ton code complet pour voir claire ?

    Cordialement,

    dimanche 3 mai 2015 12:45
  • Bonjour,

    On a bien compris la question. C'est juste que l'on est limité par les fonctions autorisées dans un select.

    Il faudrait peut-être regarder du coté de la fonction "CAST()'  et CONVERT()

    https://msdn.microsoft.com/fr-CA/library/ms187928.aspx

    Exemples :

    DECLARE @myval decimal (5, 2);
    SET @myval = 193.57;
    SELECT CAST(CAST(@myval AS varbinary(20)) AS decimal(10,5));
    -- Or, using CONVERT
    SELECT CONVERT(decimal(10,5), CONVERT(varbinary(20), @myval));

    - - - - - - - - - - - - - - - - - - - - - - - -

    select replace(convert(varchar,cast(floor(@s) as money),1),'.00',
       
    '.'+right(cast(@s * 10000 +10000.5 as int),4))


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci


    dimanche 3 mai 2015 12:47
  • Merci Paraglider,mqis ne ça marche pas.

    zorro j'ai copier dans le commentaire prècedent le code complet de ma requette SQL.

    dimanche 3 mai 2015 19:53
  • Bonjour,

    J'ai installer MS SQL et créé une table :

    Et ensuite deux select :

    On constate que mon premier select est formaté et qu'il affiche bien les deux premières décimales et que le deuxième select affiche le résultat avec toutes les décimales.


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    • Marqué comme réponse Khawla.Dev dimanche 3 mai 2015 22:20
    dimanche 3 mai 2015 21:16
  • Merci beaucoup Paraglider ça marche bien votre dernier réponse.Merci pour tous qui ont consacré leur temps pour me répondre.

    cordialement Khawla

    dimanche 3 mai 2015 22:20