Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221

    Conversione da stringa a numero

    Ciao
    ecco la mia questione:

    ho tre stringhe che contengono solo numeri:
    ImpMa[i], ImpAl[i], ImpMi[i]

    e vorrei sommarli ma ecco cosa ottengo in questo esempio:
    ImpMa[i]=1807,6
    ImpAl[i]=100
    ImpMi[i]=100

    somma = (ImpMa[i]+ImpAl[i]+ImpMi[i]) = 1807,6100100

    Dove sbaglio?

    PS: ho provato il comando Number(); ma non ottengo nulla di buono...

  2. #2
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    come hai usato il Number()?
    ...altri 5 anni di purga...

  3. #3
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221
    Ho scritto

    Number (ImpMa[i]);
    Number (ImpAl[i]);
    Number (ImpMi[i]);

    ma nel debugger mi da NaN

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    somma = (Number(ImpMa[i]) + Number(ImpAl[i]) + Number(ImpMi[i]) ) ...

  5. #5
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221
    Niente ancora .... somma = NaN ...

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Questo funziona:

    codice:
    i=0;
    ImpMa = Array(); ImpMa[i]="1807,6"; trace(ImpMa[i]);
    ImpAl = Array(); ImpAl[i]="100"; trace(ImpAl[i]);
    ImpMi = Array(); ImpMi[i]="100"; trace(ImpMi[i]);
    somma = (parseFloat(ImpMa[i]) + parseFloat(ImpAl[i]) + parseFloat(ImpMi[i]) );
    trace(somma);
    Insomma usa parseFloat

  7. #7
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221
    forse ho capito dove sta il problema, i miei valori sono numeri che contengono la "," ed a quanto pare non gli piace fare somme cone le "," .... però non so come risolvere il problema ....

  8. #8
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221
    Grazie eiyen .... ci siamo quasi ...

    capisco il tuo procedimento tuttavia mi trovo con il valore giusto ... ma tralascia quello che sta dopo la virgola ...

    Ecco qua:

    codice:
    somma=(parseFloat(ImpMa[i])+parseFloat(ImpAl[i])+parseFloat(ImpMi[i]))= 2007 invece che 2007,6

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Per la conversione usa parseFloat, mentre per il problema della "," puoi fare:

    codice:
    VarStringa_1 = "100,10";
    PosVirgola_1 = VarStringa_1.indexOf(",");
    
    VarStringa_1b = VarStringa_1.substring(0, PosVirgola_1)
    +"."
    +VarStringa_1.substring(PosVirgola_1+1);
    
    VarNumerica_1 = parseFloat(VarStringa_1b);
    per ogni variabile (puoi usare un ciclo ovviamente...)

    Non è la soluzione migliore, ma tiene la tua struttura iniziale e funziona...

  10. #10
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    devi sostituire le virgole con i punti

    ImpMa[i]=ImpMa[i].split(",").join(".")

    oppure te li formatti all'origine
    ...altri 5 anni di purga...

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.