Risultati da 1 a 5 di 5
  1. #1
    La Borga L'avatar di hendor
    Data Registrazione
    28-02-02
    Località
    Roma
    Messaggi
    10,613

    Predefinito Problemi con JavaScript

    Mmmmm problema assai stranuccio.

    Provate a dare a JavaScript il seguente calcolo: 1.5*3 (o 3.0).
    Invece di dare 4.5, ci restituisce 4.500000000.....01.
    Se il numero è negativo invece, viene una cosa di questo tipo: -1.99999999999....9995 (invece di -2.0).

    La cosa è piuttosto grave, poichè per il tipo di applicazione che stiamo sviluppando, la precisione nei calcoli è essenziale. In particolare il nostro problema è il seguente:
    abbiamo 3 punti nello spazio. Ricaviamo i parametri a,b,c,d dell'equazione del piano ax+by+cz+d=0 passante per i tre punti.
    dato poi un 4 punto, vogliamo verificare se esso si trovi sopra al piano, sotto, oppure appartenga al piano (prendendo provvedimenti diversi nei tre casi). E' ovvio quindi che se nell'equazione del piano, la d vale -1.9999999999...005 invece di -2.0 il calcolo va a farsi benedire, visto che un punto situato sul piano, risulta esserne fuori (di pochissimo, ma comunque fuori).

    Suggerimenti?

  2. #2
    abaper
    ospite

    Predefinito Re: Problemi con JavaScript

    a me funziona
    Codice:
    <html>
    <script>
    function xx(){
       x=1.5*3.0;
       alert(x);
       xx=-1.5*3;
       alert(xx);
    
    }
    </script>
    <body onload="xx();">
    </body>
    </html>
    provato sia con ie che con mozzilla

  3. #3
    La Borga L'avatar di hendor
    Data Registrazione
    28-02-02
    Località
    Roma
    Messaggi
    10,613

    Predefinito Re: Problemi con JavaScript

    prova con 0.2*0.4

  4. #4
    abaper
    ospite

    Predefinito Re: Problemi con JavaScript

    da quel che ho capito è necessario formattare il numero.
    dai un'occhiata qui:
    http://www.jsdir.com/staffscripts/script078.asp

  5. #5
    La Borga L'avatar di hendor
    Data Registrazione
    28-02-02
    Località
    Roma
    Messaggi
    10,613

    Predefinito Re: Problemi con JavaScript

    Il problema è che questi numeri non andavano stampati ma utilizzati in altri calcoli.

    Alla fine abbiamo optato per la seguente soluzione:

    x = 0.2*0.4
    parseFloat(x.toFixed(10));

    Il numero.toFixed(n) arrotonda il numero alla n-esima cifra decimale. Poichè restituisce una stringa, si usa parseFloat per riottenere un numero.

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice HTML è Disattivato