Sobes.tech
Junior — Middle

Hogyan válasszuk ki helyesen az adattípust a köpkék figyelembevételével a rendszerben tárolt költséghez?

sobes.tech MI

Válasz az MI-től

A pénzértékek centben való tárolásához fontos olyan adattípust választani, amely biztosítja a pontosságot és elkerüli a kerekítési hibákat.

Gyakran alkalmazott megközelítések:

  • Egész típusok — a összeget a legkisebb egységekben tárolni (pl. fillér). Ahelyett, hogy 123,45 rubelt tárolnánk, 12345-öt (egész számot). Ez kiküszöböli a kerekítési hibákat az aritmetikai műveleteknél.

  • Fix pontosságú tizedes típusok (pl. decimal vagy big.Rat Go-ban) — lehetővé teszik, hogy számokkal dolgozzunk rögzített számú tizedesjeggyel.

Go-ban pénzügyi számításokhoz gyakran használnak egész értékeket vagy külső könyvtárakat a tizedes aritmetika kezelésére, például a shopspring/decimal-t:

import "github.com/shopspring/decimal"

ár := decimal.NewFromFloat(123.45)
// pontos tizedes aritmetikával végzett műveletek

Így a választás a pontossági követelményektől és a pénzértékekkel való munkavégzés kényelmétől függ.