Sobes.tech
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 decimal või big.Rat Go 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.