Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Numeroiden oikea muotoilu voi olla hankala tehtävä. Ja valuuttojen muotoilu tuo lisähaasteita lokalisointiin liittyen. Onneksi Golla on apuna ominaisuuksia.

Go-standardikirjasto tarjoaa erilaisia ​​työkaluja numeroiden muotoiluun. Strconv-paketti sisältää toimintoja numeroiden jäsentämiseen ja muuntamiseen merkkijonoiksi ja merkkijonoista.

Strconv-paketti

The strconv paketti on tehokas työkalu numeroiden ja merkkijonojen muuntamiseen. Voit käyttää sitä työskennelläksesi numeroiden kanssa eri muodoissa.

strconv on osa vakiokirjastoa, joten se on tärkeä monille Go-peruskäsitteet, jotka sinun tulee tuntea. Näin voit tuoda sen:

tuonti"strconv"

Paketti sisältää toimintoja lukujen muuntamiseen merkkijonoiksi ja merkkijonoista eri muodoissa. Se sisältää toimintoja kokonaislukujen ja liukulukujen kanssa työskentelemiseen.

strconv voi myös käsitellä muunnoksia binääri-, oktaali- ja heksadesimaalimuotoihin ja niistä sekä tieteellisiä merkintöjä.

Kokonaislukujen muotoilu Go: ssa

Strconv-paketti Itoa toiminto tarjoaa toiminnot kokonaislukujen muuntamiseen merkkijonoiksi. The Itoa funktio ottaa kokonaisluvun ja palauttaa kyseisen kokonaisluvun merkkijonoesityksen.

tuonti (
"fmt"
"strconv"
)

funcpää() {
kokonaislukuja := 3043
stringVersion := strconv. Itoa (kokonaisluvut)
fmt. Println (merkkijonoversio) // Tulos: "3043"
}

Tämä koodi muuntaa kokonaisluvun arvon merkkijonoksi käyttämällä Itoa. Sitten se tulostaa tuloksena olevan merkkijonon konsoliin käyttämällä fmt paketti.

Lisäksi Itoa funktio, strconv tarjoaa:

  • FormatInt kokonaislukujen muotoiluun tietyn kantaluvun omaavina merkkijonoina
  • AppendInt merkkijonomuotoisten kokonaislukujen liittämiseksi tavuosaan.

Näin voit käyttää FormatInt funktio kokonaisluvun muotoilemiseksi:

tuonti (
"fmt"
"strconv"
)

funcpää() {
kokonaislukuja := 12345
merkkijonot := strconv. FormatInt(int64(kokonaisluvut), 10)
fmt. Println (merkkijonot) // Tulos: "12345"
}

Tämä koodi käyttää int64() muuntaaksesi alkuperäisen arvon 64-bittiseksi kokonaisluvuksi. Sitten se välittää tuloksen FormatInt, sekä muunnosperusta, tässä tapauksessa 10. FormatInt palauttaa merkkijonon, joka Println sitten tulostuu konsoliin.

The AppendInt funktio ottaa tavuviipaleen, an int64 arvo ja perusta.

tuonti (
"fmt"
"strconv"
)

funcpää() {
kokonaislukuja := 12345
byteSlice := tehdä([]tavu, 0, 20)
byteSlice = strconv. AppendInt (byteSlice, int64(kokonaisluvut), 10)
fmt. Println(merkkijono(byteSlice)) // Tulos: "12345"
}

Huomaa, että AppendInt vastaanottaa tavulohkon, johon liitetään, ja palauttaa tuloksena olevan tavulohkon. Tässä tapauksessa alkuperäinen tavuviipale on tyhjä, mutta sen kapasiteetti on 20 tallentaakseen tuloksena olevan kokonaisluvun merkkijonoesityksen.

Merkkijonojen jäsentäminen kokonaislukuina

The Atoi funktio muuntaa merkkijonot kokonaisluvuiksi. Se ottaa syötteenä merkkijonon ja palauttaa kyseisen merkkijonon kokonaislukuesityksen virhetyypin kanssa.

Näin voit käyttää Atoi funktio merkkijonosta kokonaisluvuksi muuntamiseen:

tuonti (
"fmt"
"strconv"
)

funcpää() {
jouset := "123"
kokonaisluvut, err := strconv. Atoi (kielet)

jos virhe! = nolla {
fmt. Println (err)
}

fmt. Println (kokonaisluvut)
}

Ohjelma tulostaa kokonaisluvun arvon konsoliin:

Voit myös käyttää ParseUint funktio jäsentääksesi etumerkittömien kokonaislukujen merkkijonoesityksen.

paketti pää

tuonti (
"fmt"
"strconv"
)

funcpää() {
// jäsentää merkkijonon perusarvona 10 ja 0-bittisenä etumerkittömänä kokonaislukuna
val, err := strconv. ParseUint("12345", 10, 0)

jos virhe! = nolla {
fmt. Println (err)
} muu {
fmt. Println (val) // Tulos: 12345
}
}

The ParseUint Funktio jäsentää 12345-merkkijonon etumerkittömänä kokonaislukuna. 0-bittinen koko varmistaa, että se palauttaa standardin int-tyypin. Se palauttaa jäsennetyn arvon ja virheen.

Voit käyttää ParseFloat funktio jäsentääksesi liukulukuluvun merkkijonoesityksen.

tuonti (
"fmt"
"strconv"
)

funcpää() {
// jäsentää merkkijono 64-bittisenä liukulukuna
val, err := strconv. ParseFloat("3.14", 64)

jos virhe! = nolla {
fmt. Println (err)
} muu {
fmt. Println (val) // Tulos: 3.14
}
}

The ParseFloat Funktio jäsentää merkkijonon 64-bittisenä liukulukuna ja palauttaa merkkijonon ja virhetyypin.

Valuuttojen muotoilu Gossa

Valuuttojen kanssa vuorovaikutuksessa olevan sovelluksen rakentaminen vaatii numeroiden muotoilua ja jäsentämistä. Työskentely eri valuuttojen kanssa voi olla haaste, mutta strconv ja kirjanpito paketit voivat auttaa sinua muotoilemaan ne.

Näin voit jäsentää valuuttamerkkijonon floatiksi valuutan operaatioita varten:

tuonti (
"fmt"
"strconv"
)

funcpää() {
// Jäsennettävä valuuttamerkkijono
currencyStr := "$1,234.56"

// Poista valuuttasymboli ja muunna kelluvaksi
floatVal, err := strconv. ParseFloat (currencyStr[1:], 64)

jos virhe! = nolla {
fmt. Println (err)
palata
}

// Tulosta jäsennetty float-arvo
fmt. Println (floatVal) // Tulos: 1234.56
}

The currencyStr muuttuja on merkkijonoesitys valuutan arvosta, jonka symbolina on dollarimerkki. Ohjelma käyttää ParseFloat funktio jäsentääksesi valuuttamerkkijonon toisesta elementistä alkaen (valuuttasymbolin jälkeen).

Perinteisesti on parasta välttää kellukkeiden käyttöä valuutoissa, koska ne voivat aiheuttaa virheitä ja virheitä tuotannossa.

Vaihtoehtoisesti voit käyttää kolmannen osapuolen pakettia, kuten kirjanpito jossa on toimintoja valuuttojen muotoiluun ja jäsentämiseen.

Suorita tämä päätekomento projektihakemistossasi kirjanpitopaketin asentamiseksi:

mene osoitteeseen github.com/leekchan/accounting

Aloita luomalla esiintymä Kirjanpito struct. Muista, että rakenteet ovat yksi niistä Go: n keskeiset olio-ominaisuudet, samanlainen kuin muiden kielten luokat. Voit alustaa kirjanpito-ilmentymän muun muassa valuuttasymbolilla ja tarkkuusarvolla.

Voit käyttää FormatMoney kirjanpitopaketin toiminto lukujen muotoilemiseksi valuutoiksi.

paketti pää

tuonti (
"fmt"
"matematiikka/iso"

"github.com/leekchan/accounting"
)

funcpää() {
ac := kirjanpito. Kirjanpito{Symboli: "$", Tarkkuus: 2}
fmt. Println (ac. FormatMoney(123456789.213123))
fmt. Println (ac. FormatMoney(12345678))
fmt. Println (ac. FormatMoney (iso. NewRat(77777777, 3)))
fmt. Println (ac. FormatMoney (iso. NewRat(-77777777, 3)))
fmt. Println (ac. FormatMoneyBigFloat (iso. NewFloat(123456789.213123)))
}

The ac muuttuja on kirjanpitoinstanssi. Tämä ohjelma muotoilee ja tulostaa rahalliset arvot käyttämällä FormatMoney ja MuotoMoneyBigFloat kirjanpito-esiintymän menetelmät. The NewRat toiminto alkaen iso paketti luo rationaalisen luvun, jolla on osoittaja ja nimittäjä. The NewFloat funktio auttaa esittämään suuria liukulukuja.

Go voi auttaa sinua muotoilemaan myös muita tyyppejä

Go tarjoaa runsaasti toimintoja numeroiden ja valuuttojen muuntamiseen yksinkertaisella tavalla.

Kieli tarjoaa myös tehokkaan merkkijonomuotoilujärjestelmän. Fmt-paketin C-vaikutteisen Sprintf-toiminnon avulla voit luoda muotoiltuja merkkijonoja käyttämällä erityistä paikkamerkkisyntaksia. Sprintf: n avulla voit luoda merkkijonoja, jotka sisältävät numeroita ja valuutta-arvoja, mikä helpottaa ihmisen luettavan tulosteen luomista.