Domanda

Sto provando a fare l'eco di una variabile contenente 1400000. quindi c'è scritto: echo round(1400000); questo dà 1,4E + 6 invece del numero completo. Qualcuno ha un'idea su come visualizzarlo completamente?

È stato utile?

Soluzione

Sembra che il problema sia stato il round. L'ho cambiato con number_format() e questo fa bene il lavoro. Grazie Aron e Paul per le risposte.

Altri suggerimenti

In relazione alla tua domanda, mi sono anche imbattuto in questo commento sul sito Web di PHP.

  

PHP passa dal decimale standard   notazione a notazione esponenziale per   certo " speciale " galleggianti. Puoi vedere   un elenco parziale di tale " speciale "   valori con questo:

for( $tmp = 0, $i = 0; $i < 100; $i++ ) 
{
    $tmp += 100000;
    echo round($tmp),"\n"; 
} 
  

Quindi, se aggiungi due float, finisci con   un " speciale " valore, ad es. 1,2 E + 6, quindi   metti quel valore non modificato in un   aggiorna la query per memorizzare il valore in a   colonna decimale, diciamo, probabilmente   ottenere una transazione non riuscita, dal momento che   il database vedrà " 1.2E + 6 " come varchar   dati, non decimali. Allo stesso modo, lo farai   probabilmente ottiene un errore di convalida XSD se   hai inserito il valore in xml.

     

Devo essere sincero: questo è uno dei   le cose più strane in cui ho visto   qualsiasi lingua in oltre 20 anni di   codifica, ed è un dolore colossale   aggirare.

Sembra che non ci sia stata una " real " risolto ancora, ma a giudicare dai commenti in bug report a cui Paul Dixon fa riferimento in precedenza, la sua soluzione sembra funzionare.

Forse correlato a questo segnalazione di bug , quindi puoi provare

printf("%d", $myvar);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top