Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Správne formátovanie čísel môže byť zložitá úloha. A formátovanie mien prináša ďalšie výzvy týkajúce sa lokalizácie. Našťastie má Go funkcie, ktoré vám pomôžu.

Štandardná knižnica Go poskytuje rôzne nástroje na formátovanie čísel. Balík strconv obsahuje funkcie na analýzu a konverziu čísel do az reťazcov.

Balík strconv

The strconv balík je výkonný nástroj na prevod medzi číslami a reťazcami. Môžete ho použiť na prácu s číslami v rôznych formátoch.

strconv je súčasťou štandardnej knižnice, takže je relevantná pre mnohé z základné koncepty Go, ktoré by ste mali poznať. Môžete ho importovať takto:

importovať"strconv"

Balík poskytuje funkcie na prevod čísel do az reťazcov v rôznych formátoch. Obsahuje funkcie na prácu s celými číslami a číslami s pohyblivou rádovou čiarkou.

strconv tiež zvládne konverziu do az binárnych, osmičkových a hexadecimálnych formátov, ako aj vedeckú notáciu.

instagram viewer

Formátovanie celých čísel v Go

Balík strconv Itoa funkcia poskytuje funkcie na prevod celých čísel na reťazce. The Itoa funkcia vezme celé číslo a vráti reťazcovú reprezentáciu tohto celého čísla.

importovať (
"fmt"
"strconv"
)

funcHlavná() {
celé čísla := 3043
stringVersion := strconv. Itoa (celé čísla)
fmt. Println (stringVersion) // Výstup: "3043"
}

Tento kód konvertuje celočíselnou hodnotu na reťazec pomocou Itoa. Potom odošle výsledný reťazec do konzoly pomocou fmt balík.

Navyše k Itoa funkcia, strconv poskytuje:

  • FormatInt na formátovanie celých čísel ako reťazcov s daným základom
  • AppendInt na pripojenie celých čísel vo forme reťazca k časti bajtov.

Tu je návod, ako môžete použiť FormatInt funkcia na formátovanie celého čísla:

importovať (
"fmt"
"strconv"
)

funcHlavná() {
celé čísla := 12345
reťazce := strconv. FormatInt(int64(celé čísla), 10)
fmt. Println (reťazce) // Výstup: "12345"
}

Tento kód používa int64() previesť pôvodnú hodnotu na 64-bitové celé číslo. Potom odovzdá výsledok do FormatInt, spolu so základňou na konverziu, v tomto prípade 10. FormatInt vráti reťazec ktorý Println potom výstupy do konzoly.

The AppendInt funkcia zaberá bajtový výsek, an int64 hodnotu a základ.

importovať (
"fmt"
"strconv"
)

funcHlavná() {
celé čísla := 12345
byteSlice := urobiť([]byte, 0, 20)
byteSlice = strconv. AppendInt (byteSlice, int64(celé čísla), 10)
fmt. Println(reťazec(byteSlice)) // Výstup: "12345"
}

Všimnite si, že AppendInt dostane bajtový výsek, ku ktorému sa má pripojiť, a vráti výsledný bajtový výsek. V tomto prípade je počiatočný bajtový rez prázdny, ale má kapacitu 20 na uloženie výslednej reťazcovej reprezentácie celého čísla.

Analýza reťazcov ako celých čísel

The Atoi funkcia konvertuje reťazce na celé čísla. Vezme reťazec ako vstup a vráti celočíselné vyjadrenie tohto reťazca spolu s typom chyby.

Tu je návod, ako môžete použiť Atoi funkcia na konverziu reťazca na celé číslo:

importovať (
"fmt"
"strconv"
)

funcHlavná() {
reťazce := "123"
celé čísla, chyba := strconv. Atoi (struny)

ak chyba!= nula {
fmt. Println (chyba)
}

fmt. Println (celé čísla)
}

Program odošle celočíselnou hodnotu do konzoly:

Môžete tiež použiť ParseUint funkcia na analýzu reťazcovej reprezentácie celých čísel bez znamienka.

balík Hlavná

importovať (
"fmt"
"strconv"
)

funcHlavná() {
// analyzovať reťazec ako základnú 10 a 0-bitové celé číslo bez znamienka
val, chyba := strconv. ParseUint("12345", 10, 0)

ak chyba!= nula {
fmt. Println (chyba)
} inak {
fmt. Println (val) // Výstup: 12345
}
}

The ParseUint funkcia analyzuje reťazec 12345 ako základné číslo bez znamienka. Veľkosť 0 bitov zaisťuje, že vráti štandardný typ int. Vráti analyzovanú hodnotu a chybu.

Môžete použiť ParseFloat funkcia na analýzu reťazcovej reprezentácie čísla s pohyblivou rádovou čiarkou.

importovať (
"fmt"
"strconv"
)

funcHlavná() {
// analyzovať reťazec ako 64-bitové číslo s pohyblivou rádovou čiarkou
val, chyba := strconv. ParseFloat("3.14", 64)

ak chyba!= nula {
fmt. Println (chyba)
} inak {
fmt. Println (val) // Výstup: 3.14
}
}

The ParseFloat funkcia analyzuje reťazec ako 64-bitové číslo s pohyblivou rádovou čiarkou a vráti reťazec a typ chyby.

Formátovanie mien v aplikácii Go

Vytvorenie aplikácie, ktorá interaguje s menami, vyžaduje formátovanie čísel a analýzu. Práca s rôznymi menami môže byť výzvou, ale strconv a účtovníctvo balíky vám môžu pomôcť s ich formátovaním.

Tu je postup, ako môžete analyzovať reťazec meny na float pre operácie s menou:

importovať (
"fmt"
"strconv"
)

funcHlavná() {
// Reťazec meny na analýzu
currencyStr := "$1,234.56"

// Odstráňte symbol meny a preveďte ho na float
floatVal, err := strconv. ParseFloat (currencyStr[1:], 64)

ak chyba!= nula {
fmt. Println (chyba)
vrátiť
}

// Vytlačí analyzovanú hodnotu float
fmt. Println (floatVal) // Výstup: 1234,56
}

The menaStr premenná je reťazcová reprezentácia hodnoty meny so znakom dolára ako symbolom. Program využíva ParseFloat funkcia na analýzu reťazca meny počnúc druhým prvkom (za symbolom meny).

Zvyčajne je najlepšie vyhnúť sa používaniu plávajúcich mien, pretože môžu viesť k chybným výpočtom a chybám vo výrobe.

Prípadne môžete použiť balík tretej strany, napr účtovníctvo ktorý má funkcie na formátovanie a analýzu mien.

Ak chcete nainštalovať účtovný balík, spustite tento príkaz terminálu v adresári projektu:

prejdite na stránku github.com/leekchan/accounting

Začnite vytvorením inštancie súboru účtovníctvo štrukturovať. Pripomeňme, že štruktúry sú jednou z Základné objektovo orientované funkcie Go, podobne ako triedy z iných jazykov. Inštanciu účtovníctva môžete okrem iných možností inicializovať pomocou symbolu meny a hodnoty presnosti.

Môžete použiť Format Money funkcia účtovného balíka na formátovanie čísel do mien.

balík Hlavná

importovať (
"fmt"
"matematický/veľký"

"github.com/leekchan/accounting"
)

funcHlavná() {
ac := účtovníctvo. Účtovníctvo{Symbol: "$", Presnosť: 2}
fmt. Println (ak. Format Money(123456789.213123))
fmt. Println (ak. Format Money(12345678))
fmt. Println (ak. Format Money (veľký. NewRat(77777777, 3)))
fmt. Println (ak. Format Money (veľký. NewRat(-77777777, 3)))
fmt. Println (ak. FormatMoneyBigFloat (veľký. NewFloat(123456789.213123)))
}

The ac premenná je účtovná inštancia. Tento program formátuje a tlačí peňažné hodnoty pomocou Format Money a FormátMoneyBigFloat metódy účtovnej inštancie. The NewRat funkcia z veľký balík vytvorí racionálne číslo s čitateľom a menovateľom. The NewFloat funkcia pomáha reprezentovať veľké čísla s pohyblivou rádovou čiarkou.

Go vám môže pomôcť s formátovaním aj iných typov

Go poskytuje množstvo funkcií na jednoduchý prevod čísel a mien.

Jazyk ponúka aj výkonný systém formátovania reťazcov. Funkcia Sprintf inšpirovaná C balíka fmt vám umožňuje vytvárať formátované reťazce pomocou špeciálnej syntaxe zástupného symbolu. Sprintf môžete použiť na vytváranie reťazcov, ktoré obsahujú čísla a hodnoty meny, čo uľahčuje vytváranie pre človeka čitateľného výstupu.