Visualizzazione dei risultati da 1 a 6 su 6

Discussione: if non considerato

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    45

    if non considerato

    Allora ho una pagina che calcola dei valori inseriti dall'utente. In basi a questi valori esegue una serie di calcoli con variabili definite nel codice oltre a quelle rappresentate dai valori inseriti dall'utente.
    Il codice esistente (non compilato da me) prevede alla fine una media che però non considera se ci sono valori uguali a 0 sfalsando la media.
    Il mio compito è modificare il codice dicendogli che per fare la media deve verificare che non ci siano valori pari a 0 e se trova valori pari a 0 deve escluderli dalla media.
    Questo il codice da me scritto:

    if ((m1==0) && (m2==0) && (m3==0) && (m4==0) && (m5==0) && (m6==0)) {
    r7=0
    }
    else if ((m1==0)&&(m2==0)&&(m3==0)&&(m4==0)&&(m5==0)&&(m6> =0)) {
    r7.cint=(Number(m6));
    }
    else if ((m1==0)&&(m2==0)&&(m3==0)&&(m4==0)&&(m5!=0)&&(m6! =0)) {
    r7.cint=(Number(m5)+Number(m6))/2;
    }
    else if ((m1==0)&&(m2==0)&&(m3==0)&&(m4!=0)&&(m5!=0)&&(m6! =0)) {
    r7.cint=(Number(m4)+Number(m5)+Number(m6))/3;
    }
    else if ((m1==0)&&(m2==0)&&(m3!=0)&&(m4!=0)&&(m5!=0)&&(m6! =0)) {
    r7.cint=(Number(m3)+Number(m4)+Number(m5)+Number(m 6))/4;
    }
    else if ((m1==0)&&(m2!=0)&&(m3!=0)&&(m4!=0)&&(m5!=0)&&(m6! =0)) {
    r7.cint=(Number(m2)+Number(m3)+Number(m4)+Number(m 5)+Number(m6))/5;
    }
    else {
    r7.cint=(Number(m1)+Number(m2)+Number(m3)+Number(m 4)+Number(m5)+Number(m6))/6;
    }


    Il precedente codice è:

    //settimo risultato
    r7=(Number(m1)+Number(m2)+Number(m3)+Number(m4)+Nu mber(m5)+Number(m6))/6;
    r7=Comma(r7.toFixed(0));
    a7.innerHTML="€ "+r7;


    Mi dite cosa sbaglio?
    Se lascio il codice precedente com'è e inserisco il mio if dopo la seconda riga, lo ignora perchè esegue il calcolo della prima riga, se elimino la prima riga del codice precedente non funziona più e la media non la calcola.
    Qual'è il problema?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Vedo che hai gia' realizzato che i valori confrontati possano non essere numeri

    Number(m6)

    non puoi aspettarti che il confronto di una probabile stringa con un numero riesca sempre

    if ... (m6==0)

    Inoltre non mi risulta che nativamente una variabile abbia una prorieta' cint :master:

    r7.cint=(...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    45
    Allora per quanto riguarda la prima parte ti posto la parte di codice che indica che le variabili m+numero sono dei numeri:

    //primo risultato
    r1=(redd/i)*100;
    var m1=r1;
    r1=Comma(r1.toFixed(0));
    a1.innerHTML="€ "+r1;


    var r1=0

    Se poi non ho capito niente dimmelo. Dunque la parte blu sta all'interno di una funzione, mentre la parte rossa sta all'inizio del codice. Il tutto è all'interno di una pagina .js che viene richiamata in una pagina .html


    Per quanto riguarda la seconda parte la proprietà .cint l'ho inserita così dopo una serie di tentativi. Ti spiego inizialmente non l'avevo messa e non si sa per quale motivo il calcolo considerava il mio codice con l'if mettendo numeri assurdi con la virgola. Una volta inserito quello spariti i numeri con la virgola.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    45
    Mi dite come posso farmi restituire un numero intero da questo codice?

    //settimo risultato
    r7=Comma(r7.toFixed(0));
    if ((m1==0)&&(m2!=0)&&(m3!=0)&&(m4!=0)&&(m5!=0)&&(m6! =0)) {
    r7=(Number(m2)+Number(m3)+Number(m4)+Number(m5)+Nu mber(m6))/5;
    }
    else if ((m1==0)&&(m2==0)&&(m3!=0)&&(m4!=0)&&(m5!=0)&&(m6! =0)) {
    r7=(Number(m3)+Number(m4)+Number(m5)+Number(m6))/4;
    }
    else if ((m1==0)&&(m2==0)&&(m3==0)&&(m4!=0)&&(m5!=0)&&(m6! =0)) {
    r7=(Number(m4)+Number(m5)+Number(m6))/3;
    }
    else if ((m1==0)&&(m2==0)&&(m3==0)&&(m4==0)&&(m5!=0)&&(m6! =0)) {
    r7=(Number(m5)+Number(m6))/2;
    }
    else if ((m1==0)&&(m2==0)&&(m3==0)&&(m4==0)&&(m5==0)&&(m6> =0)) {
    r7=(Number(m6));
    }
    else if ((m1==0) && (m2==0) && (m3==0) && (m4==0) && (m5==0) && (m6==0)) {
    r7=0
    }
    else {
    r7=(Number(m1)+Number(m2)+Number(m3)+Number(m4)+Nu mber(m5)+Number(m6))/6;
    }
    a7.innerHTML="€ "+r7;



    So che ci vuole la proprietà CInt ma non so dove metterla.

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ho come l'impressione che tu stia confondendo i linguaggi... in javascript si usa la funzione parseInt()

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    45
    Si grazie...faccio un po' di confusione xchè non conosco bene il javascript e neanche l'asp e quindi li mischio.

    Cmq informandomi bene su internet sono arrivata alla soluzione corretta che mi fa funzionare perfettamente la pagina.
    Ecco il codice:

    if ((m1==0)&&(m2!=0)&&(m3!=0)&&(m4!=0)&&(m5!=0)&&(m6! =0)) {
    r7=Math.round((Number(m2)+Number(m3)+Number(m4)+Nu mber(m5)+Number(m6))/5);
    }
    else if ((m1!=0)&&(m2!=0)&&(m3==0)&&(m4!=0)&&(m5!=0)&&(m6! =0)) {
    r7=Math.round((Number(m1)+Number(m2)+Number(m4)+Nu mber(m5)+Number(m6))/5);
    }
    else if ((m1==0)&&(m2==0)&&(m3!=0)&&(m4!=0)&&(m5!=0)&&(m6! =0)) {
    r7=Math.round((Number(m3)+Number(m4)+Number(m5)+Nu mber(m6))/4);
    }
    else if ((m1==0) && (m2==0) && (m3==0) && (m4==0) && (m5==0) && (m6==0)) {
    r7=0
    }
    else {
    r7=Math.round((Number(m1)+Number(m2)+Number(m3)+Nu mber(m4)+Number(m5)+Number(m6))/6);
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.