Bonjour,

J'ai actuellement deux compteur sous forme de textbox dans le code behind (VB.net) je récupère leur valeur en javascript mais pour cela je plit au point "." pour faire des calculs décimaux le problème étant que lorsque j'ai un nombre commençant par 0.xx le calcul ne s'effectue pas il en va de même je souhaiterai que au final si un utilisateur saisie un nombre xxx cela soit remplacé par xxx.00 il en va de même pour un nombre type xxx.01 qui est transformé en xxx.10 et la c'est le drame entre 10 et 01 il y a une franche différence je colle le code actuel si quelqu'un à une solution complète car la j'en ai franchement marre de me prendre la tête ça fait 3 jours que je suis dessus. Bref merci franchement d'avance. Cette fonction s'effectue sur un onChange La page est en asp.net et le code behind en vb.net JavaScript à été choisi pour éviter les aller retour serveur inutiles.

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
function CalculCompteur()
{
    var compteurdepart = document.getElementById("TBCompteurDepart").value;
    var compteurfin = document.getElementById("TBCompteurFin").value;
    compteurdepart = compteurdepart.replace(",",".");
    compteurfin = compteurfin.replace(",",".");
 
if (compteurdepart != "" && compteurfin != "" && (compteurdepart*1.00) < (compteurfin*1.00) && compteurdepart != isNaN(compteurdepart) && compteurfin != isNaN(compteurfin))
{
    var typeCompteur = document.getElementById("HiddenTypeCompteur").value;
 
          if (typeCompteur != null)
            {
              var cptDepInt = compteurdepart.toString().split('\.')[0];                    
              var cptDepDec = compteurdepart.toString().split('\.')[1];
              var cptFinInt = compteurfin.toString().split('\.')[0];
              var cptFinDec = compteurfin.toString().split('\.')[1];
 
                      if (cptDepDec == undefined)
                         {
                         cptDepDec =0;
                         }
                      if (cptFinDec == undefined)
                         {
                         cptFinDec =0;
                         }                       
                      if (cptDepDec < 10)
                         {
                        cptDepDec = cptDepDec * 10;
                         }
                      if (cptFinDec < 10)
                         {
                         cptFinDec =cptFinDec * 10;
                         }
 
                                    if (typeCompteur == "HD")
                                     {
                                            if (cptDepDec < 0 || cptDepDec > 99 || cptFinDec < 0 || cptFinDec > 99)
                                              {
                                              alert("Les chiffre apres la virgule doivent etre compris entre 0 et 99");
                                              }
                                     }
                                     if (typeCompteur == "HM")
                                     {
                                             if (cptDepDec < 0 || cptDepDec > 59 || cptFinDec < 0 || cptFinDec > 59)
                                              {
                                              alert("Les chiffres apres la virgule doivent etre compris entre 0 et 59");
                                              }
                                     }
 
                                           //Calculs selon les compteurs
                                           if (typeCompteur == "HD")
                                              {
                                              document.getElementById("TBMoteur").value = ((cptFinInt - cptDepInt)*60) + (((cptFinDec - cptDepDec)*6)/10);
                                              document.getElementById("TBCompteurDepart").value  = (cptDepInt + "," + cptDepDec);
                                              document.getElementById("TBCompteurFin").value = (cptFinInt + "," + cptFinDec);                         
                                              }
                                            if (typeCompteur == "HM")
                                              {
                                              document.getElementById("TBMoteur").value = ((cptFinInt - cptDepInt)*60) + (cptFinDec - cptDepDec);
                                              document.getElementById("TBCompteurDepart").value  = (cptDepInt + "," + cptDepDec);
                                              document.getElementById("TBCompteurFin").value = (cptFinInt + "," + cptFinDec); 
                                              }
               }
 
}
HM et HD correspondent à des compteur différents cela peut être en heures minutes (deux décimales de 00 à 59) ou en heures centième (deux décimale de 00 à 99) voila sachant que le calcul me ramène dans tous les cas le TBMoteur affiche cela en Minutes.