Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Numbrite õige vormindamine võib olla keeruline ülesanne. Ja valuutade vormindamine toob kaasa täiendavaid väljakutseid, mis hõlmavad lokaliseerimist. Õnneks on Go funktsioonid abiks.

Go standardteek pakub erinevaid tööriistu numbrite vormindamiseks. Pakett strconv sisaldab funktsioone arvude sõelumiseks ja stringideks ja stringidest teisendamiseks.

Strconv pakett

The strconv pakett on võimas tööriist numbrite ja stringide vahel teisendamiseks. Saate seda kasutada erinevates vormingutes numbritega töötamiseks.

strconv on osa standardsest teegist, seega on see paljude jaoks asjakohane Go põhimõisteid, mida peaksite tundma. Selle importimiseks tehke järgmist.

importida"strconv"

Pakett pakub funktsioone arvude teisendamiseks erinevates vormingutes stringideks ja stringidest. See sisaldab funktsioone täisarvude ja ujukomaarvudega töötamiseks.

strconv saab käsitleda ka teisendamist kahend-, kaheksand- ja kuueteistkümnendvormingusse ja nendest teisendamist ning teaduslikku tähistust.

Täisarvude vormindamine Go-s

Strconv pakett Itoa Funktsioon pakub täisarvude teisendamist stringideks. The Itoa funktsioon võtab täisarvu ja tagastab selle täisarvu stringi esituse.

importida (
"fmt"
"strconv"
)

funcpeamine() {
täisarvud := 3043
stringVersion := strconv. itoa (täisarvud)
fmt. Println (stringversioon) // Väljund: "3043"
}

See kood teisendab täisarvu väärtuse stringiks kasutades Itoa. Seejärel väljastab see saadud stringi konsooli kasutades fmt pakett.

Lisaks Itoa funktsiooni strconv pakub:

  • FormatInt täisarvude vormindamiseks etteantud alusega stringidena
  • AppendInt stringikujuliste täisarvude lisamiseks baitide lõigule.

Siin on, kuidas saate kasutada FormatInt funktsioon täisarvu vormindamiseks:

importida (
"fmt"
"strconv"
)

funcpeamine() {
täisarvud := 12345
stringid := strconv. FormatInt(int64(täisarvud), 10)
fmt. Println (stringid) // Väljund: "12345"
}

See kood kasutab int64() algse väärtuse teisendamiseks 64-bitiseks täisarvuks. Seejärel edastab see tulemuse FormatInt, koos teisendusalusega, antud juhul 10. FormatInt tagastab stringi, mis Println seejärel väljub konsooli.

The AppendInt funktsioon võtab sisse baidilõigu, an int64 väärtus ja alus.

importida (
"fmt"
"strconv"
)

funcpeamine() {
täisarvud := 12345
byteSlice := tegema([]bait, 0, 20)
byteSlice = strconv. AppendInt (byteSlice, int64(täisarvud), 10)
fmt. Println(string(byteSlice)) // Väljund: "12345"
}

Pange tähele, et AppendInt võtab lisamiseks vastu baidilõigu ja tagastab saadud baidilõigu. Sel juhul on esialgne baidilõik tühi, kuid mahutavus on 20, et salvestada saadud täisarvu stringi esitus.

Stringide sõelumine täisarvudena

The Atoi funktsioon teisendab stringid täisarvudeks. See võtab sisendiks stringi ja tagastab selle stringi täisarvulise esituse koos veatüübiga.

Siin on, kuidas saate kasutada Atoi funktsioon stringist täisarvuks teisendamiseks:

importida (
"fmt"
"strconv"
)

funcpeamine() {
stringid := "123"
täisarvud, err := strconv. Atoi (keeled)

kui eks!= null {
fmt. Println (viga)
}

fmt. Println (täisarvud)
}

Programm väljastab konsooli täisarvu väärtuse:

Võite kasutada ka ParseUint funktsioon märgita täisarvude stringi esituse sõelumiseks.

pakett peamine

importida (
"fmt"
"strconv"
)

funcpeamine() {
// sõeluvad stringi baasi 10 ja 0-bitise märgita täisarvuna
val, err := strconv. ParseUint("12345", 10, 0)

kui eks!= null {
fmt. Println (viga)
} muidu {
fmt. Println (val) // Väljund: 12345
}
}

The ParseUint Funktsioon parsib stringi 12345 kümne põhimärgita täisarvuna. 0-bitine suurus tagab standardse int-tüübi tagastamise. See tagastab parsitud väärtuse ja veateate.

Võite kasutada ParseFloat funktsioon ujukomaarvu stringi esituse sõelumiseks.

importida (
"fmt"
"strconv"
)

funcpeamine() {
// sõeluvad stringi 64-bitise ujukomaarvuna
val, err := strconv. ParseFloat("3.14", 64)

kui eks!= null {
fmt. Println (viga)
} muidu {
fmt. Println (val) // Väljund: 3.14
}
}

The ParseFloat funktsioon parsib stringi 64-bitise ujukomaarvuna ning tagastab stringi ja veatüübi.

Valuutade vormindamine Go-s

Valuutadega suhtleva rakenduse loomine nõuab numbrite vormindamist ja sõelumist. Erinevate valuutadega töötamine võib olla väljakutse, kuid strconv ja raamatupidamine paketid aitavad teil neid vormindada.

Siit saate teada, kuidas saate valuutastringi sõeluda valuutaga tehtavate toimingute jaoks.

importida (
"fmt"
"strconv"
)

funcpeamine() {
// Sõelutav valuutastring
valuutaStr := "$1,234.56"

// Eemaldage valuuta sümbol ja teisendage ujukiks
floatVal, err := strconv. ParseFloat (currencyStr[1:], 64)

kui eks!= null {
fmt. Println (viga)
tagasi
}

// Prinditakse sõelutud ujuvväärtus
fmt. Println (floatVal) // Väljund: 1234,56
}

The valuutaStr muutuja on valuuta väärtuse string, mille sümboliks on dollari märk. Programm kasutab ParseFloat funktsioon valuutastringi sõelumiseks alates teisest elemendist (pärast valuutasümbolit).

Tavaliselt on parem vältida valuutade jaoks ujukite kasutamist, kuna need võivad põhjustada valearvestusi ja vigu tootmises.

Teise võimalusena võite kasutada kolmanda osapoole paketti, näiteks raamatupidamine millel on funktsioonid valuutade vormindamiseks ja sõelumiseks.

Raamatupidamispaketi installimiseks käivitage see terminali käsk oma projektikataloogis:

minge saidile github.com/leekchan/accounting

Alustage eksemplari loomisega Raamatupidamine struktuur. Tuletage meelde, et struktuurid on üks Go põhilised objektorienteeritud funktsioonid, sarnaselt teiste keelte klassidega. Saate initsialiseerida raamatupidamiseksemplari valuutasümboli ja täppisväärtusega muu hulgas.

Võite kasutada Formaat Money raamatupidamispaketi funktsioon arvude vormindamiseks valuutadesse.

pakett peamine

importida (
"fmt"
"matemaatika/suur"

"github.com/leekchan/accounting"
)

funcpeamine() {
ac := raamatupidamine. Raamatupidamine{Sümbol: "$", Täpsus: 2}
fmt. Println (ac. FormatMoney(123456789.213123))
fmt. Println (ac. FormatMoney(12345678))
fmt. Println (ac. FormatMoney (suur. NewRat(77777777, 3)))
fmt. Println (ac. FormatMoney (suur. NewRat(-77777777, 3)))
fmt. Println (ac. FormaatMoneyBigFloat (suur. NewFloat(123456789.213123)))
}

The ac muutuja on raamatupidamiseksemplar. See programm vormindab ja prindib rahalisi väärtusi kasutades Formaat Money ja FormaatMoneyBigFloat raamatupidamiseksemplari meetodid. The UusRat funktsioonist suur pakett loob ratsionaalse arvu, millele on antud lugeja ja nimetaja. The Uus Float funktsioon aitab esitada suuri ujukoma numbreid.

Go aitab teil vormindada ka muid tüüpe

Go pakub arvude ja valuutade lihtsaks teisendamiseks palju funktsioone.

Keel pakub ka võimsat stringivormingu süsteemi. Fmt-paketi C-st inspireeritud Sprintf-funktsioon võimaldab teil luua vormindatud stringe spetsiaalse kohatäite süntaksi abil. Sprintfi abil saate luua numbreid ja valuutaväärtusi sisaldavaid stringe, mis muudab inimloetava väljundi loomise lihtsaks.