Salut a vous tous,
Je rencontre un problème pour pouvoir afficher du numérique avec des points décimaux.
Je crée une définition soit pour additionner ou soustraire ou encore pour diviser, mais a l'affichage, je n'ai pas de décimal. (pas de reste)
Je n'ai que des entiers.
Et pourtant, a la récuppération des chiffres entrées, je les transféres bien en numérique, mais je n'y comprend plus rien a l'affichage, ce n'est que des entiers qui s'affiche.
Voici mon code qui doit s'afficher dans une boîte de dialogue.
Code:
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#On vacréer 2 boîte d'entrés, pui
#On va récuppérer ces valeurs avec la fonction GetValue().
#En tout premier on demande d'entrer le premier chiffre a additionner.
  n = wx.TextEntryDialog(self,"Entrez le premier chiffre  a additionner ici","",style = wx.OK | wx.CANCEL | wx.CENTRE)
 
#afficher la fenêtre tant et aussi longtemps que l'on ne la fermera pas
 
  reponse = n.ShowModal()
#Récupération du text entré
 
  nn = n.GetValue()
 
#En tout premier lieu, on vérifi si la chaine entrée est une chaine vide
  if nn == '': 
   nn = '0' #on force a mettre 0
   winsound.PlaySound('wav_cal/chaine_vide.wav', winsound.SND_NODEFAULT)
   d = wx.MessageDialog(self, "", " Pas de chaîne vide S.V.P !",   wx.OK)
   d.ShowModal()
   d.Destroy()
   return
  lnn = len(nn) #longueur de la chaine
  verification = 0
  for i in range(0, lnn):
   if ord(nn[i]) < 46 or ord(nn[i]) > 57:
    verification = 1
 
#recuperation du nombre en un entier numerique
  if verification == 1:
   winsound.PlaySound('wav_cal/chaine_lettre.wav', winsound.SND_NODEFAULT)
   d = wx.MessageDialog(self, "", " Pas de lettre S.V.P!",   wx.OK)
   d.ShowModal()
   d.Destroy()
   return
   nb=0
   verification = 0
  else:
   nb = int(nn) 
 
 
#Demande d'entrer le second chiffre ici
  nn1 = wx.TextEntryDialog(self,"Entrez le deuxième chiffre à additionner ici","",style = wx.OK | wx.CANCEL | wx.CENTRE)
  reponse = nn1.ShowModal()
  nn2 = nn1.GetValue()
   #On verifie si on a entrée autre  chose que des chiffres
#En tout premier lieu, on vérifi si la chaine entrée est une chaine vide
  if nn2 == '': 
   nn2 = '0' #on force a mettre 0
   winsound.PlaySound('wav_cal/chaine_vide.wav', winsound.SND_NODEFAULT)
   d = wx.MessageDialog(self, "", " Pas de chaîne vide S.V.P !",   wx.OK)
   d.ShowModal()
   d.Destroy()
   return
  lnn = len(nn2) #longueur de la chaine
  verification = 0
  for i in range(0, lnn):
   if ord(nn2[i]) < 46 or ord(nn2[i]) > 57:
    verification = 1
 
 
   #recuperation du nombre en un entier numerique
  if verification == 1:
   winsound.PlaySound('wav_cal/chaine_lettre.wav', winsound.SND_NODEFAULT)
   d = wx.MessageDialog(self, "", " Pas de chaîne vide S.V.P !",   wx.OK)
   d.ShowModal()
   d.Destroy()
   return
   nb1 = 0
   verification = 0
  else:
   nb1 = int(nn2)
   resultat = nb+nb1  
 
 
#Affichage du résultat dans la boîte de dialogue.
 
   d = wx.MessageDialog(self, ""+str(resultat),  "La réponse est ",   wx.OK)
   d.ShowModal()
   d.Destroy()

J'ai fais des vérifications a savoir si c'est une chaine vide que les gens ont entré ou bien si c'est une lettre mais a l'affichage, j'ai par exemple si j'écris dans la boîte de dialogue 12.25 et bien a l'affichage, j'ai une erreur. Toutefois,
si j'écris 12 dans la première boîte et 15 dans la deuxième j'ai bien la réponse 27 qui s'affiche.