Waluta w bazie danych

0

Witam! Tworzę mini projekt we Flasku i muszę w bazie danych przechować wartość reprezentującą pieniądze. Korzystam z SQLAlchemy i dostaję takie ostrzeżenie:

SAWarning: Dialect sqlite+pysqlite does *not* support Decimal objects natively, and SQLAlchemy must convert from floating point - rounding errors and other issues may occ
ur. Please consider storing Decimal numbers as strings or integers on this platform for lossless storage.

Taką kolumnę stworzyłem ta kwoty:

amount = db.Column(db.Numeric, nullable=False)

W bazie danych wszystko ładnie się przechowuję, tzn. (załącznik 1)!(https://4programmers.net/uploads/attachment/5e/5e048e5b10826.png),
ale gdy przynoszę wartości do HTMLa otrzymuję już coś takiego (załącznik2)!(https://4programmers.net/uploads/attachment/5e/5e048edf43753.png).

Co będzie najlepszym rozwiązaniem? Ucinanie zer, zaokrąglanie? Boję się o niedokładne wartości. Przechowywanie liczb jako stringi(serio?), int z oczywistych powodów odpada...

2

Nie przechowuj pieniędzy w formie zmiennoprzecinkowej tylko liczbowej. Zaoszczędzi to zaokrągleń przy operacjach.

Przy zapisywaniu do bazy mnożysz wartość razy 100, a przy pobieraniu i wyświetlaniu dzielisz.

0

A stworzyć swój typ Money?

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