Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Non conosco esattamente come PHP tratti i dati numerici.
    Ma poniamo che usi 15 cifre per la mantissa e 3 per l'esponente, più il segno di entrambi.

    Se trasformi 3.4497401091247E-005 in notazione std, si ha:

    3.4497401091247E-005 = 0.000034497401091247

    Bene, dividi ancora per 9 il risultato (0.000034497401091247).
    Cosa otteni?

    Meno precisione. Tradotto: ti fo**i le ultime 4 cifre della mantissa in quanto non stanno nelle 15 previste.

    Difatti 0.000034497401091247 =Troncamento= 3.4497401090000E-005.

    Commento finale: non fare mai caGate simili!!


    [.:: JaguarXF ::.]
    __________________

  2. #12
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    puoi cambiare la visualizzazione e non il dato.

    codice:
    echo number_format(7.212549588184E-012,100,".",",");

    ciao ciao

  3. #13
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    ...ma poi che ti frega di come PHP tratta internamentei dati??

    [.:: JaguarXF ::.]
    __________________

  4. #14
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    il punto è che io volevo la precisione assoluta su qualsiasi tipo di dato...

    ovvero su una somma di questo tipo: 8965897234578934275893427589023745890734895+672394 6436237894637284623718462378463278941103743 non darà mai una risposta precisa???

    non si puo mettere nessuna opzione affinche la dia???

    era questo che volevo... evitare qualsiasi arrotondamento...

    si puo???

  5. #15
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    No non si può. Ogni computer lavora con precisione finita.

    Parlo per logica: non so PHP che precisione abbia, lo ripeto.

    Ma in genere non si può. E ti sorprenderà sapere che per certi algoritmi di calcolo numerico (risoluzione eq. differenziali alle derivate parzilai), talvolta aumentando la "risoluzione" senza sapere che fai vai addirittura a commettere più errore!!!

    [.:: JaguarXF ::.]
    __________________

  6. #16
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    ... mmmah... x me nn si puo solo xche non serve a nessuno...

    il computer puo lavorare con la precisione (finita chiaramente) che vuoi a livello teorico: la limitazione sono solo il tempo o le memorie...

    voglio dire: se riesco a creare IO una funzione che faccia la corretta somma di 8965897234578934275893427589023745890734895+672394 643623789463728462371846237846 vuoi che un elaboratore non riesca a calcolarlo???

    cmq chissà come mai non fanno modificare quei parametri???

  7. #17
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Guarda che stiamo parlando di virgola mobile.
    E cmq ripeto: non so il limite imposto dai progettisti del PHP, ma ovviamente c'è ed all'infinito non ti puoi spingere.
    I miei post vogliono significare solo questo.

    Va beh, ora vado a casa.

    Buona serata.

    [.:: JaguarXF ::.]
    __________________

  8. #18
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da mamo139
    ... mmmah... x me nn si puo solo xche non serve a nessuno...

    il computer puo lavorare con la precisione (finita chiaramente) che vuoi a livello teorico: la limitazione sono solo il tempo o le memorie...

    voglio dire: se riesco a creare IO una funzione che faccia la corretta somma di 8965897234578934275893427589023745890734895+672394 643623789463728462371846237846 vuoi che un elaboratore non riesca a calcolarlo???

    cmq chissà come mai non fanno modificare quei parametri???
    http://www.php.net/manual/it/language.types.float.php

    sono le basi del linguaggio....

    The size of a float is platform-dependent, although a maximum of ~1.8e308 with a precision of roughly 14 decimal digits is a common value (that's 64 bit IEEE format).
    Il fatto che venga mostrato con l'esponente non vuol dire che è meno preciso.
    Anche in matematica "normale" quando i numeri diventano troppo grossi o troppo piccoli si usa questo espediente.
    Io non ho mai scritto numeri con millemila 0.

    Ciao

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.