Pravilno oblikovanje številk je lahko težavna naloga. In oblikovanje valut prinaša dodatne izzive, ki vključujejo lokalizacijo. Na srečo ima Go funkcije za pomoč.
Standardna knjižnica Go nudi različna orodja za oblikovanje številk. Paket strconv vključuje funkcije za razčlenjevanje in pretvorbo števil v nize in iz njih.
Paket strconv
The strconv paket je zmogljivo orodje za pretvorbo med številkami in nizi. Uporabljate ga lahko za delo s številkami v različnih formatih.
strconv je del standardne knjižnice, zato je pomemben za mnoge osnovni pojmi Go, ki bi jih morali poznati. Evo, kako ga lahko uvozite:
uvoz"strconv"
Paket ponuja funkcije za pretvorbo števil v in iz nizov v različnih formatih. Vključuje funkcije za delo s celimi števili in števili s plavajočo vejico.
strconv lahko obravnava tudi pretvorbo v binarne, oktalne in šestnajstiške oblike zapisa in iz njih ter znanstveni zapis.
Oblikovanje celih števil v Go
Paket strconv Itoa nudi funkcionalnost za pretvorbo celih števil v nize. The Itoa funkcija vzame celo število in vrne nizovno predstavitev tega celega števila.
uvoz (
"fmt"
"strconv"
)
funkglavni() {
cela števila := 3043
stringVersion := strconv. Itoa (cela števila)
fmt. Println (stringVersion) // Izhod: "3043"
}
Ta koda pretvori vrednost celega števila v niz z uporabo Itoa. Nato izpiše nastali niz v konzolo z uporabo fmt paket.
Poleg tega Itoa funkcija strconv zagotavlja:
- FormatInt za oblikovanje celih števil kot nizov z dano osnovo
- AppendInt za dodajanje celih števil v obliki niza rezini bajtov.
Tukaj je opisano, kako lahko uporabite FormatInt funkcija za oblikovanje celega števila:
uvoz (
"fmt"
"strconv"
)
funkglavni() {
cela števila := 12345
nizi := strconv. FormatInt(int64(cela števila), 10)
fmt. Println (nizi) // Izhod: "12345"
}
Ta koda uporablja int64() za pretvorbo prvotne vrednosti v 64-bitno celo število. Nato posreduje rezultat v FormatInt, skupaj z osnovo za pretvorbo, v tem primeru 10. FormatInt vrne niz, ki Println nato izhodi na konzolo.
The AppendInt funkcija sprejme bajtno rezino, an int64 vrednost in osnova.
uvoz (
"fmt"
"strconv"
)
funkglavni() {
cela števila := 12345
byteSlice := narediti([]bajt, 0, 20)
byteSlice = strconv. AppendInt (byteSlice, int64(cela števila), 10)
fmt. Println(vrvica(byteSlice)) // Izhod: "12345"
}
Upoštevajte, da AppendInt prejme bajtno rezino za pripenjanje in vrne nastalo bajtno rezino. V tem primeru je začetna bajtna rezina prazna, vendar ima kapaciteto 20 za shranjevanje nastale nizovne predstavitve celega števila.
Razčlenjevanje nizov kot celih števil
The Atoi funkcija pretvori nize v cela števila. Kot vhod vzame niz in vrne celoštevilsko predstavitev tega niza skupaj z vrsto napake.
Tukaj je opisano, kako lahko uporabite Atoi funkcija za pretvorbo niza v celo število:
uvoz (
"fmt"
"strconv"
)funkglavni() {
nizi := "123"
cela števila, napaka := strconv. Atoi (strune)če napaka!= nič {
fmt. Println (napaka)
}
fmt. Println (cela števila)
}
Program izpiše celoštevilsko vrednost na konzolo:
Uporabite lahko tudi ParseUint funkcijo za razčlenitev nizovne predstavitve nepredznačenih celih števil.
paket glavni
uvoz (
"fmt"
"strconv"
)funkglavni() {
// razčleni niz kot osnovo 10 in 0-bitno nepredznačeno celo število
val, err := strconv. ParseUint("12345", 10, 0)
če napaka!= nič {
fmt. Println (napaka)
} drugače {
fmt. Println (val) // Izhod: 12345
}
}
The ParseUint funkcija razčleni niz 12345 kot nepredznačeno celo število z osnovo deset. 0-bitna velikost zagotavlja, da vrne standardni tip int. Vrne razčlenjeno vrednost in napako.
Lahko uporabite ParseFloat funkcijo za razčlenitev nizovne predstavitve števila s plavajočo vejico.
uvoz (
"fmt"
"strconv"
)funkglavni() {
// razčleni niz kot 64-bitno število s plavajočo vejico
val, err := strconv. ParseFloat("3.14", 64)
če napaka!= nič {
fmt. Println (napaka)
} drugače {
fmt. Println (val) // Izhod: 3.14
}
}
The ParseFloat funkcija razčleni niz kot 64-bitno število s plavajočo vejico in vrne niz in vrsto napake.
Oblikovanje valut v Go
Izdelava aplikacije, ki komunicira z valutami, zahteva oblikovanje številk in razčlenjevanje. Delo z različnimi valutami je lahko izziv, vendar strconv in računovodstvo paketi vam jih lahko pomagajo formatirati.
Tukaj je opisano, kako lahko valutni niz razčlenite na plavajočo vrednost za operacije na valuti:
uvoz (
"fmt"
"strconv"
)funkglavni() {
// Valutni niz za razčlenitev
valutaStr := "$1,234.56"// Odstranite simbol valute in pretvorite v plavajočo vrednost
floatVal, napaka := strconv. ParseFloat (currencyStr[1:], 64)če napaka!= nič {
fmt. Println (napaka)
vrnitev
}
// Natisni razčlenjeno plavajočo vrednost
fmt. Println (floatVal) // Izhod: 1234.56
}
The valutaStr spremenljivka je nizovna predstavitev vrednosti valute z znakom za dolar kot simbolom. Program uporablja ParseFloat funkcijo za razčlenitev valutnega niza, začenši z drugim elementom (za simbolom valute).
Običajno se je najbolje izogibati uporabi plavajočih valut za valute, saj lahko povzročijo napačne izračune in napake v proizvodnji.
Lahko pa uporabite paket tretje osebe, kot je računovodstvo ki ima funkcionalnost za oblikovanje in razčlenjevanje valut.
Zaženite ta terminalski ukaz v imeniku vašega projekta, da namestite računovodski paket:
pojdite na github.com/leekchan/accounting
Začnite z ustvarjanjem primerka Računovodstvo struct. Spomnimo se, da so strukture eden od Go's osnovne objektno usmerjene funkcije, podobno kot pri predavanjih iz drugih jezikov. Računovodski primerek lahko inicializirate med drugimi možnostmi s simbolom valute in natančno vrednostjo.
Lahko uporabite FormatMoney funkcija računovodskega paketa za formatiranje števil v valute.
paket glavni
uvoz (
"fmt"
"matematika/velik""github.com/leekchan/accounting"
)
funkglavni() {
ac := računovodstvo. Računovodstvo{Simbol: "$", Natančnost: 2}
fmt. Println (ac. FormatMoney(123456789.213123))
fmt. Println (ac. FormatMoney(12345678))
fmt. Println (ac. FormatMoney (velik. Nova podgana(77777777, 3)))
fmt. Println (ac. FormatMoney (velik. Nova podgana(-77777777, 3)))
fmt. Println (ac. FormatMoneyBigFloat (velik. NewFloat(123456789.213123)))
}
The ac spremenljivka je računovodski primerek. Ta program oblikuje in natisne denarne vrednosti z uporabo FormatMoney in FormatMoneyBigFloat metode računovodske instance. The Nova podgana funkcijo od velik paket ustvari racionalno število, ki ima števec in imenovalec. The NewFloat funkcija pomaga predstavljati velika števila s plavajočo vejico.
Go vam lahko pomaga formatirati tudi druge vrste
Go ponuja veliko funkcij za preprosto pretvorbo števil in valut.
Jezik ponuja tudi zmogljiv sistem oblikovanja nizov. Funkcija Sprintf paketa fmt, ki jo navdihuje C, vam omogoča ustvarjanje oblikovanih nizov z uporabo posebne sintakse ograd. Sprintf lahko uporabite za ustvarjanje nizov, ki vključujejo številke in vrednosti valut, kar olajša ustvarjanje človeku berljivega rezultata.