Formattare correttamente i numeri può essere un compito complicato. E la formattazione delle valute comporta ulteriori sfide che coinvolgono la localizzazione. Fortunatamente, Go dispone di funzioni utili.
La libreria standard Go fornisce vari strumenti per la formattazione dei numeri. Il pacchetto strconv include funzioni per l'analisi e la conversione di numeri in e da stringhe.
Il pacchetto strconv
IL strconv package è un potente strumento per la conversione tra numeri e stringhe. Puoi usarlo per lavorare con numeri in vari formati.
strconv fa parte della libreria standard, quindi è rilevante per molti dei concetti di base di Go che dovresti conoscere. Ecco come puoi importarlo:
importare"strconv"
Il pacchetto fornisce funzioni per la conversione di numeri in e da stringhe in vari formati. Include funzioni per lavorare con numeri interi e numeri in virgola mobile.
strconv può anche gestire la conversione da e verso i formati binario, ottale ed esadecimale, nonché la notazione scientifica.
Formattazione di numeri interi in Go
Il pacchetto strconv è Itoa La funzione fornisce funzionalità per la conversione di numeri interi in stringhe. IL Itoa La funzione accetta un numero intero e restituisce la rappresentazione di stringa di tale numero intero.
importare (
"fmt"
"strconv"
)
funzprincipale() {
numeri interi := 3043
stringVersion := strconv. Itoa (interi)
fmt. Println (stringVersione) // Uscita: "3043"
}
Questo codice converte un valore intero in una stringa utilizzando Itoa. Quindi invia la stringa risultante alla console utilizzando il file fmt pacchetto.
In aggiunta a Itoa funzione, strconv fornisce:
- FormatoInt per la formattazione di numeri interi come stringhe con una data base
- AggiungiInt per aggiungere numeri interi sotto forma di stringa a una fetta di byte.
Ecco come puoi usare il FormatoInt funzione per formattare un numero intero:
importare (
"fmt"
"strconv"
)
funzprincipale() {
numeri interi := 12345
stringhe := strconv. FormatoInt(int64(interi), 10)
fmt. Println (stringhe) // Uscita: "12345"
}
Questo codice utilizza int64() per convertire il valore originale in un numero intero a 64 bit. Quindi passa il risultato a FormatoInt, insieme a una base per la conversione, in questo caso 10. FormatInt restituisce una stringa che Stampaln quindi emette alla console.
IL AggiungiInt la funzione accetta una fetta di byte, an int64 valore e una base.
importare (
"fmt"
"strconv"
)
funzprincipale() {
numeri interi := 12345
byteSlice := Fare([]byte, 0, 20)
byteSlice = strconv. AppendInt (byteSlice, int64(interi), 10)
fmt. Stampaln(corda(byteSlice)) // Uscita: "12345"
}
Si noti che AppendInt riceve una porzione di byte da aggiungere e restituisce la porzione di byte risultante. In questo caso, il byte slice iniziale è vuoto, ma ha una capacità di 20 per memorizzare la rappresentazione di stringa risultante dell'intero.
Analisi delle stringhe come numeri interi
IL Atoi La funzione converte le stringhe in numeri interi. Accetta una stringa come input e restituisce una rappresentazione intera di quella stringa insieme a un tipo di errore.
Ecco come puoi usare il Atoi funzione per la conversione da stringa a numero intero:
importare (
"fmt"
"strconv"
)funzprincipale() {
stringhe := "123"
interi, err := strconv. Atoi (archi)Se errare!= zero {
fmt. Stampaln (err)
}
fmt. Println (interi)
}
Il programma restituisce il valore intero alla console:
Puoi anche usare il AnalizzaUint funzione per analizzare la rappresentazione di stringa di interi senza segno.
pacchetto principale
importare (
"fmt"
"strconv"
)funzprincipale() {
// analizza la stringa come numero intero senza segno in base 10 e 0 bit
val, err := strconv. AnalizzaUint("12345", 10, 0)
Se errare!= zero {
fmt. Stampaln (err)
} altro {
fmt. Println (val) // Uscita: 12345
}
}
IL AnalizzaUint La funzione analizza la stringa 12345 come numero intero senza segno in base dieci. La dimensione di 0 bit assicura che restituisca un tipo int standard. Restituisce il valore analizzato e un errore.
Puoi usare il ParseFloat funzione per analizzare una rappresentazione di stringa di un numero in virgola mobile.
importare (
"fmt"
"strconv"
)funzprincipale() {
// analizza la stringa come numero a virgola mobile a 64 bit
val, err := strconv. AnalizzaFloat("3.14", 64)
Se errare!= zero {
fmt. Stampaln (err)
} altro {
fmt. Println (val) // Uscita: 3.14
}
}
IL ParseFloat La funzione analizza la stringa come un numero in virgola mobile a 64 bit e restituisce la stringa e un tipo di errore.
Formattazione delle valute in Go
La creazione di un'applicazione che interagisce con le valute richiede la formattazione e l'analisi dei numeri. Lavorare con valute diverse può essere una sfida, ma il strconv E contabilità i pacchetti possono aiutarti a formattarli.
Ecco come puoi analizzare una stringa di valuta in un float per le operazioni sulla valuta:
importare (
"fmt"
"strconv"
)funzprincipale() {
// Stringa valuta da analizzare
valutaStr := "$1,234.56"// Rimuovi il simbolo di valuta e converti in float
floatVal, err := strconv. ParseFloat (currencyStr[1:], 64)Se errare!= zero {
fmt. Stampaln (err)
ritorno
}
// Stampa il valore float analizzato
fmt. Println (floatVal) // Uscita: 1234,56
}
IL valutaStr variabile è una rappresentazione in forma di stringa di un valore di valuta con il simbolo del dollaro. Il programma utilizza il ParseFloat funzione per analizzare la stringa della valuta a partire dal secondo elemento (dopo il simbolo della valuta).
Convenzionalmente, è meglio evitare di utilizzare float per le valute in quanto potrebbero causare errori di calcolo e bug nella produzione.
In alternativa, puoi utilizzare un pacchetto di terze parti come contabilità che ha funzionalità per la formattazione e l'analisi delle valute.
Esegui questo comando da terminale nella directory del tuo progetto per installare il pacchetto di accounting:
vai su github.com/leekchan/accounting
Inizia creando un'istanza di Contabilità struct. Ricordiamo che le strutture sono uno di Le principali funzionalità orientate agli oggetti di Go, simile alle classi di altre lingue. È possibile inizializzare un'istanza di Contabilità con un simbolo di valuta e un valore di precisione, tra le altre opzioni.
Puoi usare il FormatoMoney funzione del pacchetto contabile per formattare i numeri in valute.
pacchetto principale
importare (
"fmt"
"matematica/grande""github.com/leekchan/contabilità"
)
funzprincipale() {
ac := contabilità. Contabilità{Simbolo: "$", Precisione: 2}
fmt. Stampaln (ac. FormatoMoney(123456789.213123))
fmt. Stampaln (ac. FormatoMoney(12345678))
fmt. Stampaln (ac. FormatoMoney (big. Nuovo Ratto(77777777, 3)))
fmt. Stampaln (ac. FormatoMoney (big. Nuovo Ratto(-77777777, 3)))
fmt. Stampaln (ac. FormatoMoneyBigFloat (big. Nuovo float(123456789.213123)))
}
IL AC variabile è l'istanza contabile. Questo programma formatta e stampa i valori monetari utilizzando il formato FormatoMoney E FormatoMoneyBigFloat metodi dell'istanza contabile. IL NewRat funzione dal grande package crea un numero razionale dati un numeratore e un denominatore. IL NuovoFloat La funzione aiuta a rappresentare grandi numeri in virgola mobile.
Go può aiutarti a formattare anche altri tipi
Go offre molte funzioni per convertire numeri e valute in modo semplice.
Il linguaggio offre anche un potente sistema di formattazione delle stringhe. La funzione Sprintf ispirata a C del pacchetto fmt consente di creare stringhe formattate utilizzando una sintassi segnaposto speciale. Puoi utilizzare Sprintf per creare stringhe che includono numeri e valori di valuta, semplificando la creazione di output leggibile dall'uomo.