Formatta un numero mobile in stringa in Python
-
Formattare i numeri mobili su una larghezza fissa utilizzando le specifiche del formato e il metodo
format()
- Formatta i numeri mobili in un elenco a una larghezza fissa
-
Formattare un numero mobile per correggere la larghezza utilizzando l’operatore
%
in Python -
Formatta un numero mobile in una larghezza fissa usando la funzione
round()
in Python
Questo articolo introdurrà alcuni metodi per formattare un numero mobile a una larghezza fissa in Python.
Formattare i numeri mobili su una larghezza fissa utilizzando le specifiche del formato e il metodo format()
Qui, utilizzeremo il normale processo di formattazione tramite la specifica del formato per correggere la larghezza dei numeri mobili.
Creeremo una variabile num
e le assegneremo un numero mobile. Quindi, stamperemo il numero mobile nel formato di cui abbiamo bisogno. Useremo la funzione format()
per ottenere il nostro risultato.
Codici di esempio:
# python 3.x
num = 0.02893574
print("{:.4f}".format(num))
Produzione:
0.0289
Qui, .4f
è chiamato specifica del formato, che indica che l’output dovrebbe mostrare solo quattro posizioni dopo la virgola. Se invece usassimo .5f
, otterremmo fino a cinque cifre dopo la virgola. La stringa vuota prima dei due punti :
è posizionata in modo che l’argomento fornito alla funzione format()
prenda quel posto. Nel programma sopra, l’argomento che abbiamo fornito è num
. Quindi, qualunque valore abbiamo in num
verrà passato alla stringa vuota prima di :
e formattato di conseguenza.
In Python 3.6, possiamo anche usare f'{}'
per ottenere lo stesso Output:
#python 3.x
num = 0.02893574
print (f'{num:.4f}')
Produzione:
0.0289
Formatta i numeri mobili in un elenco a una larghezza fissa
Usiamo sintassi simili per fissare la larghezza dei numeri mobili fino a una cifra specifica dopo la virgola.
Innanzitutto, creeremo un elenco con diversi numeri mobili. Quindi, useremo il bucle for per prendere ogni elemento dall’elenco e formattarlo di conseguenza. Useremo la variabile numbers
per rappresentare i numeri all’interno della lista. Stamperemo i numeri mobili nella lista uno per uno con numeri fissi di cifre dopo la virgola.
Codice di esempio:
# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
print("{:.3f}".format(numbers))
Produzione:
18.292
52.452
999.121
Nel codice sopra, ogni numero all’interno della lista viene inviato uno per uno all’interno del cicli for
. Il primo elemento della lista, cioè list[0]
, viene assegnato alla variabile numbers
, e viene stampato il suo valore formattato, cioè 18.293
. È successo perché abbiamo eseguito .3f
, che rappresenta le cifre fino a tre posizioni dopo la virgola. Allo stesso modo, anche il secondo elemento list[1]
e il terzo list[2]
vengono passati al bucle come variabili numbers
e vengono stampati di conseguenza.
Questo programma funziona fino a quando tutti gli elementi della lista non vengono eseguiti.
Usando f'{}'
:
Codice di esempio:
L’elenco seguente contiene gli stessi elementi del programma precedente. Useremo f'{}'
invece della funzione format()
in questo esempio.
# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
print(f"{numbers:9.3f}")
Produzione:
18.292
52.452
999.121
Possiamo vederlo quando abbiamo ottenuto l’output quando abbiamo usato f'{}'
. Abbiamo anche ottenuto l’output desiderato in modo allineato. Per lo stesso motivo, generalmente è meglio usare f'{}'
se vogliamo allineare le cifre mobili dopo il decimale.
Formattare un numero mobile per correggere la larghezza utilizzando l’operatore %
in Python
Possiamo anche impostare una larghezza fissa per un numero mobile con l’uso dell’operatore %v
. Il codice potrebbe essere simile alla funzione printf()
nella programmazione C.
Assegneremo un numero mobile a una variabile num
e stamperemo il valore di num
con cifre decimali fino a una larghezza fissa. Si noti che mentre si passa il valore di num
all’istruzione print con l’identificatore di formato %.4f
, si utilizza %num
. Manca %
prima di num
sarà un errore di sintassi.
Codice di esempio:
# python 3.x
num = 0.02893574
print("%.4f" % num)
Produzione:
0.0289
Qui l’uso di %num
ci ha permesso di stampare il valore desiderato senza alcuna funzione o formattazione di stringhe.
Formatta un numero mobile in una larghezza fissa usando la funzione round()
in Python
Possiamo anche usare la funzione round()
per fissare i numeri di cifre dopo la virgola. Questa funzione limita il numero di cifre dopo il punto decimale sul numero di input. Arrotonda anche la cifra in corrispondenza della quale è impostato il limite al suo valore integrale superiore se la cifra è maggiore del valore 5
.
Prendiamo un numero in virgola mobile e assegniamolo a una variabile num
. Quando stampiamo, utilizzeremo la funzione round()
per limitare il numero di cifre dopo la virgola.
Codice di esempio:
# python 3.x
num = 2.37682
print(round(num, 3))
Produzione:
2.377
La sintassi per la funzione round è round(number, digits)
. Qui l’argomento number
è obbligatorio mentre l’argomento digits
è facoltativo. number
può anche essere messo come variabile. Se nulla viene passato all’argomento digits
, viene presa come risultato solo la parte integrale del number
.
Nel programma sopra, abbiamo passato il valore 2.37682
al primo argomento num
, ed è stato arrotondato a 3 posizioni dopo la virgola perché abbiamo passato il valore 3
al secondo argomento all’interno di round()
metodo.