Formatta un numero mobile in stringa in Python

Ankur Baral 30 gennaio 2023
  1. Formattare i numeri mobili su una larghezza fissa utilizzando le specifiche del formato e il metodo format()
  2. Formatta i numeri mobili in un elenco a una larghezza fissa
  3. Formattare un numero mobile per correggere la larghezza utilizzando l’operatore % in Python
  4. Formatta un numero mobile in una larghezza fissa usando la funzione round() in Python
Formatta un numero mobile in stringa 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.

Articolo correlato - Python Float