Oprogramowanie do transakcji finansowych - jaka jest praktyka co do typu danych?

0

Czego się używa? Typ decimal, czy jednak jakiś typ calkowitoliczbowy reprezentujący grosze/centy ?

0

Nigdy nie pisałem takich systemów ale słyszałem, że tylko liczby całkowite. Operacje na dziesiętnych nie zawsze dają dobre rezultaty (tj. dają dobre ale zgodnie z systemem binarnym a nie dziesiętnym).

1

Albo operujesz na całkowitoliczbowych albo na stałej precyzji, nigdy nie używasz liczb zmiennoprzecinkowych.

1

Coś w stylu decimal, nigdy float.

Tyczy się nie tylko logiki procesowania tych "kwot", ale także np. typów danych w bazie danych - znajomy kiedyś chciał zapuścić swojego bota na foreksie, co mu decimale wrzucał do MySQLa pola typu float właśnie (a później pobierał to do "porównań"). Przy "drobnych" różnicach na foreksie, użycie floata, bez wiedzy co on robi z częścią po przecinku, może skończyć się samobójstwem. Podejrzewam, że wiele takich przypadków już miało miejsce.

0

Najlepiej typ decimal ew. bigdecimal jeśli jest.
Liczba groszy (int, long, long long, bigint) musi być bardzo pilnowana, bo może zrobić psikusa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1