2009-09-24 10 views

risposta

21

2.1E-5 è lo stesso numero di 0.000021. Ecco come stampa numeri sotto 0.001. Utilizzare printf() se lo si desidera in un formato particolare.

Edit Se non hai familiarità con la sintassi 2.1E-5, si dovrebbe sapere che è una scorciatoia per 2,1 × 10 -5 . È come la maggior parte dei linguaggi di programmazione rappresenta numeri in notazione scientifica.

5

Usa number_format o sprintf se si desidera vedere il numero come previsto.

echo sprintf('%f', $var); 
echo number_format($var, 6); 
6

In generale, un numero è un numero, non una stringa e ciò significa che qualsiasi linguaggio di programmazione considera un numero come un numero. Pertanto, il numero di per sé non implica alcun formato specifico (ad esempio l'utilizzo di .000021 anziché di 2.1e-5). Non è niente di diverso nel visualizzare un numero con zeri iniziali (come 0.000021) o allineare liste di numeri. Questo è un problema generale che troverai in qualsiasi linguaggio di programmazione: se vuoi un formato specifico devi specificarlo, usando le funzioni di formattazione del tuo linguaggio di programmazione.

A meno che non si specifichi il numero come stringa e lo si converta in un numero reale quando necessario, ovviamente. Alcune lingue possono farlo implicitamente.

-1
<?php 
$var = .000021; 
echo $var; // 2.1E-5 
echo "\n"; 
$var = '.000021'; 
echo $var; // .000021 

Definire il proprio numero come una stringa per evitare l'auto-fusione, quando utilizzato in un contesto stringa (ad esempio eco)

+1

ovviamente solo una buona soluzione se il numero che si sta lavorando con è spec fuori nel codice sorgente (in contrapposizione a calcolata in fase di esecuzione). .. che può o non può essere il caso nella tua situazione. –

2

per mostrare un numero fino a 8 spazi decimali, senza zeri in più a destra (come number_format non, che può essere fastidioso), utilizzare questo:

echo rtrim(rtrim(sprintf('%.8F', $var), '0'), ".");

Problemi correlati