Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Ispravno formatiranje brojeva može biti težak zadatak. A formatiranje valuta donosi dodatne izazove koji uključuju lokalizaciju. Srećom, Go ima značajke za pomoć.

Standardna biblioteka Go nudi razne alate za formatiranje brojeva. Paket strconv uključuje funkcije za raščlanjivanje i pretvaranje brojeva u i iz nizova.

Paket strconv

The strconv paket je moćan alat za pretvorbu između brojeva i nizova. Možete ga koristiti za rad s brojevima u različitim formatima.

strconv dio je standardne biblioteke, pa je relevantan za mnoge osnovni Go koncepti s kojima biste trebali biti upoznati. Evo kako ga možete uvesti:

uvoz"strconv"

Paket nudi funkcije za pretvaranje brojeva u i iz nizova u različitim formatima. Uključuje funkcije za rad s cijelim brojevima i brojevima s pomičnim zarezom.

strconv također može upravljati pretvorbom u i iz binarnih, oktalnih i heksadecimalnih formata kao i znanstvenog zapisa.

instagram viewer

Formatiranje cijelih brojeva u Gou

Paket strconv Itoa funkcija pruža funkcionalnost za pretvaranje cijelih brojeva u nizove. The Itoa funkcija uzima cijeli broj i vraća reprezentaciju niza tog cijelog broja.

uvoz (
"fmt"
"strconv"
)

funkglavni() {
cijeli brojevi := 3043
stringVersion := strconv. Itoa (cijeli brojevi)
fmt. Println (stringVersion) // Izlaz: "3043"
}

Ovaj kod pretvara cjelobrojnu vrijednost u niz pomoću Itoa. Zatim šalje rezultirajući niz na konzolu pomoću fmt paket.

Uz to Itoa funkcija, strconv pruža:

  • FormatInt za formatiranje cijelih brojeva kao nizova sa zadanom bazom
  • AppendInt za dodavanje cijelih brojeva u obliku niza na dio bajtova.

Evo kako možete koristiti FormatInt funkcija za formatiranje cijelog broja:

uvoz (
"fmt"
"strconv"
)

funkglavni() {
cijeli brojevi := 12345
nizovi := strconv. FormatInt(int64(cijeli brojevi), 10)
fmt. Println (nizovi) // Izlaz: "12345"
}

Ovaj kod koristi int64() za pretvaranje izvorne vrijednosti u 64-bitni cijeli broj. Zatim prosljeđuje rezultat na FormatInt, zajedno s bazom za pretvorbu, u ovom slučaju 10. FormatInt vraća niz koji Println zatim izlazi na konzolu.

The AppendInt funkcija uzima odsječak bajta, an int64 vrijednost i baza.

uvoz (
"fmt"
"strconv"
)

funkglavni() {
cijeli brojevi := 12345
byteSlice := napraviti([]bajt, 0, 20)
byteSlice = strconv. AppendInt (byteSlice, int64(cijeli brojevi), 10)
fmt. Println(niz(byteSlice)) // Izlaz: "12345"
}

Imajte na umu da AppendInt prima odsječak bajta za dodavanje i vraća rezultirajući odsječak bajta. U ovom slučaju, početni odsječak bajta je prazan, ali ima kapacitet od 20 za pohranjivanje rezultirajuće reprezentacije niza cijelog broja.

Raščlanjivanje nizova kao cijelih brojeva

The Atoi funkcija pretvara nizove u cijele brojeve. Uzima niz kao ulaz i vraća cjelobrojnu reprezentaciju tog niza zajedno s vrstom pogreške.

Evo kako možete koristiti Atoi funkcija za pretvorbu niza u cijeli broj:

uvoz (
"fmt"
"strconv"
)

funkglavni() {
nizovi := "123"
cijeli brojevi, pogreška := strconv. Atoi (žice)

ako pogriješiti != nula {
fmt. Println (greška)
}

fmt. Println (cijeli brojevi)
}

Program ispisuje cjelobrojnu vrijednost na konzolu:

Također možete koristiti ParseUint funkcija za raščlanjivanje reprezentacije niza cijelih brojeva bez predznaka.

paket glavni

uvoz (
"fmt"
"strconv"
)

funkglavni() {
// analizira niz kao bazu 10 i 0-bitni cijeli broj bez predznaka
val, err := strconv. ParseUint("12345", 10, 0)

ako pogriješiti != nula {
fmt. Println (greška)
} drugo {
fmt. Println (val) // Izlaz: 12345
}
}

The ParseUint funkcija analizira niz 12345 kao cijeli broj bez predznaka s bazom deset. Veličina od 0 bita osigurava vraćanje standardnog int tipa. Vraća raščlanjenu vrijednost i pogrešku.

Možete koristiti ParseFloat funkcija za raščlanjivanje reprezentacije niza broja s pomičnim zarezom.

uvoz (
"fmt"
"strconv"
)

funkglavni() {
// analizirati niz kao 64-bitni broj s pomičnim zarezom
val, err := strconv. ParseFloat("3.14", 64)

ako pogriješiti != nula {
fmt. Println (greška)
} drugo {
fmt. Println (val) // Izlaz: 3.14
}
}

The ParseFloat funkcija analizira niz kao 64-bitni broj s pomičnim zarezom i vraća niz i vrstu pogreške.

Formatiranje valuta u Go

Izrada aplikacije koja je u interakciji s valutama zahtijeva formatiranje brojeva i raščlanjivanje. Rad s različitim valutama može biti izazov, ali strconv i računovodstvo paketi vam mogu pomoći da ih formatirate.

Evo kako možete raščlaniti valutni niz u float za operacije na valuti:

uvoz (
"fmt"
"strconv"
)

funkglavni() {
// Niz valute za analizu
valutaStr := "$1,234.56"

// Uklonite simbol valute i pretvorite u float
floatVal, pogreška := strconv. ParseFloat (currencyStr[1:], 64)

ako pogriješiti != nula {
fmt. Println (greška)
povratak
}

// Ispis analizirane float vrijednosti
fmt. Println (floatVal) // Izlaz: 1234.56
}

The valutaStr varijabla je prikaz niza vrijednosti valute sa znakom dolara kao simbolom. Program koristi ParseFloat funkcija za raščlanjivanje niza valute počevši od drugog elementa (nakon simbola valute).

Uobičajeno, najbolje je izbjegavati korištenje plutajućih valuta za valute jer mogu dovesti do pogrešnih proračuna i grešaka u proizvodnji.

Alternativno, možete koristiti paket treće strane poput računovodstvo koji ima funkcionalnost za formatiranje i raščlanjivanje valuta.

Pokrenite ovu naredbu terminala u direktoriju vašeg projekta da biste instalirali računovodstveni paket:

idite na github.com/leekchan/accounting

Započnite stvaranjem instance Računovodstvo strukturirati Podsjetimo se da su strukture jedan od Osnovne objektno orijentirane značajke Goa, slično razredima iz drugih jezika. Među ostalim opcijama, instancu Računovodstva možete inicijalizirati simbolom valute i preciznom vrijednošću.

Možete koristiti FormatMoney funkcija računovodstvenog paketa za formatiranje brojeva u valute.

paket glavni

uvoz (
"fmt"
"matematika/veliko"

"github.com/leekchan/accounting"
)

funkglavni() {
ac := računovodstvo. Računovodstvo{Simbol: "$", Preciznost: 2}
fmt. Println (ac. FormatMoney(123456789.213123))
fmt. Println (ac. FormatMoney(12345678))
fmt. Println (ac. FormatMoney (veliki. NewRat(77777777, 3)))
fmt. Println (ac. FormatMoney (veliki. NewRat(-77777777, 3)))
fmt. Println (ac. FormatMoneyBigFloat (veliki. NewFloat(123456789.213123)))
}

The ak varijabla je računovodstvena instanca. Ovaj program formatira i ispisuje novčane vrijednosti pomoću FormatMoney i FormatMoneyBigFloat metode računovodstvene instance. The NewRat funkcija iz velik paket stvara racionalan broj s brojnikom i nazivnikom. The NewFloat funkcija pomaže u predstavljanju velikih brojeva s pomičnim zarezom.

Go vam može pomoći da formatirate i druge vrste

Go nudi mnoštvo funkcija za jednostavno pretvaranje brojeva i valuta.

Jezik također nudi moćan sustav oblikovanja nizova. Funkcija Sprintf inspirirana C-jem paketa fmt omogućuje vam stvaranje formatiranih nizova pomoću posebne sintakse rezerviranog mjesta. Možete koristiti Sprintf za izradu nizova koji uključuju brojeve i vrijednosti valute, što olakšava stvaranje ljudima čitljivog izlaza.