Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: replace su numero

  1. #1

    replace su numero

    Ciao a tutti...
    premetto che di javascript non ne capisco moltissimo...
    ho un problema nel formattare un numero in valota dopo aver fatto un calcolo:

    function calcola() {
    var mat, min, posa, tot;
    mat = document.capitolati.Materiale.value;
    min = document.capitolati.Tempo.value;
    posa = (35/60)*min
    tot = parseFloat(mat)+parseFloat(posa)
    tot = Math.round(tot*100)/100
    posa = Math.round(posa*100)/100
    tot = tot.replace(".",",");
    posa = posa.replace(".",",");
    document.capitolati.Posa.value=posa+'/<%=unita%>'
    document.capitolati.Tot.value=tot+'/<%=unita%>'
    }

    quando arriva a fare il replace mi dice proprietà o metodo non supportati dall'oggetto, presumo che sia perchè tot e posa sono numeri e non stringhe... ma allora come devo fare?!?
    Chi Non RisiKa noN RosiKa

  2. #2
    pensavo fosse un problema da niente...
    nessuno mi sa dare indicazioni?...
    Chi Non RisiKa noN RosiKa

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io di solito uso le slash per limitare le RegExp: mi sembra piu` chiaro. Inoltre con il tuo sistema sostituisci qualsiasi carattere con la virgola, mentre tu vuoi sostituire il punto (ti manca la backslash davanti al punto).

    tot = tot.replace(/\./, ",");

    Se ancora non va, fai un cast esplicito:
    tot = tot.toString.replace(/\./, ",");
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Grazie Mich_, cominciavo a non sperarci più...
    purtroppo però non funziona in nessuno dei due modi, l'errore è sempre lo stesso: proprietà o metodo non supportati dall'oggetto!

    Chi Non RisiKa noN RosiKa

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La pagina e` pubblicata? Puoi postare il link?
    (sospetto un errore da qualche altra parte, o un conflitto di qualche tipo).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    scusa se non ti ho risposto prima ma ieri sera ero già andato via...
    comunque ho fatto una pagina di prova pulita con solo il form e lo script e l'ho pubblicata su www.visualcom.it/prova.htm...
    al momento le righe
    tot = tot.toString.replace(/\./, ",");
    e
    posa = posa.toString.replace(/\./, ",");
    sono commentate e tutto funziona correttamente, se tolgo il commento il problema è sempre quello: proprietà o metodo non supportati dall'oggetto.

    Ti prego... aiutami!!!
    Chi Non RisiKa noN RosiKa

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Errore di sintassi (mio):
    tot = tot.toString().replace(/\./, ",");

    Prova cosi` e fammi sapere.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Grande Mich_...
    ora funziona perfettamente...

    se posso aprofittarne:
    sapresti dirmi un metodo per obbligare 2 numeri decimali?
    Ho guardato un pò in giro nel forum e le soluzioni che ho visto sono tutte un tantino macchinose, non esiste un metoto veloce per farlo?
    Chi Non RisiKa noN RosiKa

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Molto veloce no.

    Comunque se hai gai` fatto l'arrotondamento alle due cifre decimali, devi aggiungere:

    tot = Math.round(tot*100)/100;
    tot = tot.toString();
    tot = tot.replace(/^(\d+)$/, "$1,00");
    tot = tot.replace(/^(\d+)\.(\d)$/, "$1,$2"+"0");
    tot = tot.replace(/^(\d+)\.(\d+)$/, "$1,$2");

    Testalo, che non sono sicuro al 100%
    Attenzine ai backslash: fai unquote prima del copia-incolla
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    sembra funzionare perfettamente anche questo...

    Ti rigrazio veramente...
    Ciao!
    Chi Non RisiKa noN RosiKa

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.