bonjour a tous,

je suis sur un petit script de calcul basic qui refuse que je lui déclare des chiffres à virgule

en lui mettant:
int tot_ht; //erreur Uncaught SyntaxError: Unexpected identifier
double tot_ht; //erreur Uncaught SyntaxError: Unexpected identifier
float tot_ht; //erreur Uncaught SyntaxError: Unexpected identifier

var tot_ht; //ok
mais bien entendu j'ai pas accès aux chiffres à virgules, que puis je faire pour m'en sortir.

<?php 
while ($ligne_enc <= $ligne) 
    {   
        ?>
        <script type="text/javascript">
         float tot_ht;
            $('.remise<?php echo $ligne_enc;?>').keyup(function()
                {

                    var ligne = '<?=$ligne;?>';
                    var ligne_enc=0;
                    var calc=0;
                    var calc2=0;

                    while (ligne_enc <= ligne)
                        {

                            calc= $('.tot'+ligne_enc).val()
                            if (calc!="")
                                {
                                    calc2 = parseInt(calc,10); 

                                    tot_ht = (tot_ht) + (calc2) ;
                                    alert('ligne_enc=>'+ ligne_enc+'\n'+'calc'+ligne_enc+'=>'+ calc+'\n'+'tot_ht=>'+ tot_ht);
                                }

                            //alert('tot_ht'+ tot_ht+'\n'+'calc'+ calc);
                            ligne_enc = ligne_enc + 1;
                        }
                    $('.tot_ht').html(tot_ht+'€');
                });
        </script>
        <?php
        $ligne_enc=$ligne_enc+1;
    }
 ?>

merci d'avance pour votre aide FLo

5 réponses


flo3376
Auteur
Réponse acceptée

j'ai trouvé

<?php 
while ($ligne_enc <= $ligne) 
    {   
        ?>
        <script type="text/javascript">
         float tot_ht;
            $('.remise<?php echo $ligne_enc;?>').keyup(function()
                {

                    var ligne = '<?=$ligne;?>';
                    var ligne_enc=0;
                    var calc=0;
                    var calc2=0;

                    while (ligne_enc <= ligne)
                        {

                            calc= $('.tot'+ligne_enc).val()
                            if (calc!="")
                                {
                                    calc2 = parsefloat(calc); 

                                    tot_ht = (tot_ht) + (calc2) ;
                                    alert('ligne_enc=>'+ ligne_enc+'\n'+'calc'+ligne_enc+'=>'+ calc+'\n'+'tot_ht=>'+ tot_ht);
                                }

                            //alert('tot_ht'+ tot_ht+'\n'+'calc'+ calc);
                            ligne_enc = ligne_enc + 1;
                        }
                    $('.tot_ht').html(tot_ht+'€');
                });
        </script>
        <?php
        $ligne_enc=$ligne_enc+1;
    }
 ?>

j'ai parseint au lieux de parsefloat

Je ne m'y connais pas du tout en AS, mais quand tu parles de chiffre à virgule , tu entends : "2,2" ou "2.2" ?

flo3376
Auteur

un nombre décimal si tu préfére

Ça je l'avais bien compris merci, pas besoin d'être un as en programmation pour comprendre le sens de nombre décimal :p

Ce que j'entendais c'est que tu vas chercher la valeur de ton calc, mais dedans tu rentres 2.2 ou 2,2 ? (virgule ou point)
Mais cette idée n'est pas la bonne puisqu'il te renverrait un NaN plutôt que cette erreur.

Ton erreur vient simplement de ta déclaration de variable.
En javascript il n'y pas de typage de variable, c'est comme en PHP il suffit de mettre "var nomVariable" pour déclarer une variable, mais si tu mets un type il ne comprend pas ...

flo3376
Auteur

ok, ce que j'avais mis au départ, mais alors pourquoi il ne veux afficher que la partie entiére et pas la partie décimal?