Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Tinkamai suformatuoti skaičius gali būti sudėtinga. O valiutų formatavimas kelia papildomų iššūkių, susijusių su lokalizavimu. Laimei, „Go“ turi funkcijų, kurios gali padėti.

„Go“ standartinėje bibliotekoje yra įvairių skaičių formatavimo įrankių. Strconv pakete yra funkcijų, skirtų skaičiams analizuoti ir konvertuoti į eilutes ir iš jų.

Strconv paketas

The strconv paketas yra galingas įrankis konvertuoti tarp skaičių ir eilučių. Jį galite naudoti dirbdami su įvairių formatų skaičiais.

strconv yra standartinės bibliotekos dalis, todėl ji svarbi daugeliui pagrindinės Go sąvokos, kurias turėtumėte žinoti. Štai kaip galite jį importuoti:

importuoti"strconv"

Paketas suteikia funkcijų konvertuoti skaičius į ir iš įvairių formatų eilučių. Tai apima funkcijas, skirtas dirbti su sveikaisiais skaičiais ir slankiojo kablelio skaičiais.

strconv taip pat gali konvertuoti į dvejetainius, aštuntainius ir šešioliktainius formatus bei iš jų, taip pat mokslinį žymėjimą.

instagram viewer

Sveikųjų skaičių formatavimas programoje Go

Strconv paketas Itoa funkcija suteikia sveikųjų skaičių konvertavimo į eilutes funkciją. The Itoa funkcija paima sveikąjį skaičių ir grąžina to sveikojo skaičiaus eilutę.

importuoti (
"fmt"
"strconv"
)

funcpagrindinis() {
sveikieji skaičiai := 3043
stringVersion := strconv. Itoa (sveikieji skaičiai)
fmt. Println (eilutės versija) // Išvestis: "3043"
}

Šis kodas konvertuoja sveikojo skaičiaus reikšmę į eilutę naudodamas Itoa. Tada ji išveda gautą eilutę į konsolę naudodama fmt paketą.

Be to, Itoa funkcija, strconv suteikia:

  • FormatInt sveikiesiems skaičiams formatuoti kaip eilutes su nurodyta baze
  • AppendInt norint pridėti sveikuosius skaičius eilutės forma prie baitų dalies.

Štai kaip galite naudoti FormatInt funkcija sveikajam skaičiui formatuoti:

importuoti (
"fmt"
"strconv"
)

funcpagrindinis() {
sveikieji skaičiai := 12345
eilutės := strconv. FormatInt(int64(sveikieji skaičiai), 10)
fmt. Println (stygos) // Išvestis: "12345"
}

Šis kodas naudoja int64() konvertuoti pradinę reikšmę į 64 bitų sveikąjį skaičių. Tada jis perduoda rezultatą FormatInt, kartu su konvertavimo pagrindu, šiuo atveju 10. FormatInt grąžina eilutę, kuri Println tada išveda į konsolę.

The AppendInt funkcija paima baitų pjūvį, an int64 vertė ir bazė.

importuoti (
"fmt"
"strconv"
)

funcpagrindinis() {
sveikieji skaičiai := 12345
byteSlice := padaryti([]baitas, 0, 20)
byteSlice = strconv. AppendInt (byteSlice, int64(sveikieji skaičiai), 10)
fmt. Println(styga(byteSlice)) // Išvestis: "12345"
}

Atkreipkite dėmesį, kad „AppendInt“ gauna baitų skiltį, prie kurios reikia pridėti, ir grąžina gautą baitų dalį. Šiuo atveju pradinė baitų dalis yra tuščia, bet talpa yra 20, kad būtų išsaugota gauta sveikojo skaičiaus eilutė.

Stygų analizavimas kaip sveikieji skaičiai

The Atoi funkcija konvertuoja eilutes į sveikuosius skaičius. Jis įveda eilutę kaip įvestį ir grąžina sveikąjį tos eilutės vaizdą kartu su klaidos tipu.

Štai kaip galite naudoti Atoi funkcija konvertuoti iš eilutės į sveikąjį skaičių:

importuoti (
"fmt"
"strconv"
)

funcpagrindinis() {
stygos := "123"
sveikieji skaičiai, err := strconv. Atoi (stygos)

jeigu klysta! = nulis {
fmt. Println (klaida)
}

fmt. Println (sveikieji skaičiai)
}

Programa išveda sveikojo skaičiaus reikšmę į konsolę:

Taip pat galite naudoti ParseUint funkcija, skirta išanalizuoti beženklių sveikųjų skaičių eilutę.

paketą pagrindinis

importuoti (
"fmt"
"strconv"
)

funcpagrindinis() {
// išanalizuoti eilutę kaip 10 bazinį ir 0 bitų beženklį sveikąjį skaičių
val, err := strconv. ParseUint("12345", 10, 0)

jeigu klysta! = nulis {
fmt. Println (klaida)
} Kitas {
fmt. Println (val) // Išvestis: 12345
}
}

The ParseUint funkcija analizuoja 12345 eilutę kaip bazinį dešimtuką, be ženklo sveikąjį skaičių. 0 bitų dydis užtikrina, kad jis grąžina standartinį int tipą. Jis grąžina išnagrinėtą reikšmę ir klaidą.

Galite naudoti ParseFloat funkcija išanalizuoti slankaus kablelio skaičiaus eilutę.

importuoti (
"fmt"
"strconv"
)

funcpagrindinis() {
// išanalizuoti eilutę kaip 64 bitų slankiojo kablelio skaičių
val, err := strconv. ParseFloat("3.14", 64)

jeigu klysta! = nulis {
fmt. Println (klaida)
} Kitas {
fmt. Println (val) // Išvestis: 3.14
}
}

The ParseFloat funkcija analizuoja eilutę kaip 64 bitų slankiojo kablelio skaičių ir grąžina eilutę bei klaidos tipą.

Valiutų formatavimas Go

Kuriant programą, kuri sąveikauja su valiutomis, reikia formatuoti skaičių ir analizuoti. Darbas su skirtingomis valiutomis gali būti iššūkis, tačiau strconv ir buhalterinė apskaita paketai gali padėti juos suformatuoti.

Štai kaip galite išanalizuoti valiutos eilutę į plaukiojantį elementą operacijoms su valiuta:

importuoti (
"fmt"
"strconv"
)

funcpagrindinis() {
// Analizuojama valiutos eilutė
currencyStr := "$1,234.56"

// Pašalinkite valiutos simbolį ir konvertuokite į plaukiojantį
floatVal, err := strconv. ParseFloat (currencyStr[1:], 64)

jeigu klysta! = nulis {
fmt. Println (klaida)
grąžinti
}

// Spausdinkite analizuojamą slankiąją reikšmę
fmt. Println (floatVal) // Išvestis: 1234,56
}

The valiutaStr kintamasis yra valiutos vertės eilutė su dolerio ženklu kaip simboliu. Programa naudoja ParseFloat funkcija išanalizuoti valiutos eilutę, pradedant nuo antrojo elemento (po valiutos simbolio).

Paprastai geriausia nenaudoti plaukiojančių valiutų, nes tai gali sukelti klaidingų skaičiavimų ir gamybos klaidų.

Arba galite naudoti trečiosios šalies paketą, pvz buhalterinė apskaita kuri turi valiutų formatavimo ir analizavimo funkcijas.

Vykdykite šią terminalo komandą savo projekto kataloge, kad įdiegtumėte apskaitos paketą:

eikite ir gaukite github.com/leekchan/accounting

Pradėkite kurdami egzempliorių Apskaita struktūra. Prisiminkite, kad struktūros yra viena iš „Go“ pagrindinės į objektą orientuotos funkcijos, panašiai kaip kitų kalbų pamokos. Apskaitos egzempliorių galite inicijuoti naudodami valiutos simbolį ir tikslią vertę, be kitų parinkčių.

Galite naudoti Formatas Pinigai apskaitos paketo funkcija formuoti skaičius į valiutas.

paketą pagrindinis

importuoti (
"fmt"
"matematika/didelis"

"github.com/leekchan/accounting"
)

funcpagrindinis() {
ac := apskaita. Apskaita{simbolis: "$", Tikslumas: 2}
fmt. Println (ak. FormatMoney(123456789.213123))
fmt. Println (ak. FormatMoney(12345678))
fmt. Println (ak. FormatMoney (didelis. NewRat(77777777, 3)))
fmt. Println (ak. FormatMoney (didelis. NewRat(-77777777, 3)))
fmt. Println (ak. FormatasMoneyBigFloat (didelis. NewFloat(123456789.213123)))
}

The ak kintamasis yra apskaitos pavyzdys. Ši programa formatuoja ir spausdina pinigines vertes naudodama Formatas Pinigai ir FormatasMoneyBigFloat apskaitos egzemplioriaus metodai. The Naujoji Žiurkė funkcija iš didelis paketas sukuria racionalųjį skaičių, turintį skaitiklį ir vardiklį. The NewFloat funkcija padeda atvaizduoti didelius slankiojo kablelio skaičius.

„Go“ gali padėti suformatuoti ir kitus tipus

„Go“ suteikia daugybę funkcijų, leidžiančių nesudėtingai konvertuoti skaičius ir valiutas.

Kalba taip pat siūlo galingą eilučių formatavimo sistemą. Fmt paketo C įkvėpta Sprintf funkcija leidžia kurti suformatuotas eilutes naudojant specialią rezervuotos vietos sintaksę. Galite naudoti Sprintf, kad sukurtumėte eilutes, kuriose yra skaičiai ir valiutos reikšmės, todėl lengva sukurti žmonėms suprantamą išvestį.