Junior — Middle
Kuidas õigesti valida andmetüüpi, et salvestada maksumus, ar arvestusega kopikates süsteemis?
sobes.tech AI
Vastus AI-lt
Selleks, et salvestada väärtus sendiga, on oluline valida andmetüüp, mis tagab täpsuse ja väldib ümardamisvigu.
Sageli kasutatakse järgmisi lähenemisviise:
-
Täisarvud — salvestada summa väikseimates ühikutes (näiteks sendid). Selle asemel, et 123,45 rubla, salvestada 12345 (täisarv). See väldib arvutuste ajal ümardamisvigu.
-
Fikseeritud täpsusega kümnendarvutüübid (näiteks
decimalvõibig.RatGo keeles) — võimaldavad töötada arvudega, millel on fikseeritud arv kümnendkohti.
Go keeles kasutatakse finantsarvutustes sageli täisarve või väliseid teeke, näiteks shopspring/decimal:
import "github.com/shopspring/decimal"
hind := decimal.NewFromFloat(123.45)
// täpse kümnendaritme arvutustega operatsioonid
Seega sõltub valik täpsusnõuetest ja mugavusest töötada rahaliste väärtustega.