DecimalField does not work correctly
Sqlite only supports a couple different data-types: https://sqlite.org/datatype3.html

Sqlite interprets DECIMAL fields as REAL, which is a double-precision / float64. So that is why you are losing precision. Sqlite is optimizing the storage by treating the value as a numeric quantity, but it can only implement the value as an int64 or a float64.

If you don't plan on doing any math on it ever, you could use a text column for the storage:

```python
class SqliteDecimalField(DecimalField):
    field_type = 'TEXT'
```

The above will store the value precisely, but it is stored as a string so as soon as you try to do math on it you'll run into the same types of issues as before.

Basic database literacy is a good thing. I'd suggest reading the sqlite docs next time.
When choosing a large type accuracy, the accuracy is not saved and the data is stored incorrectly.

```python
from peewee import *
from decimal import Decimal

class Test(Model):
    value = DecimalField(max_digits=26, decimal_places=18)

db = SqliteDatabase(':memory:')
db.bind([Test])

Test.create_table()
Test.create(value=Decimal('12345678.123456789123456789'))
row = Test.get()
print(row.value)
# 12345678.12345679
```


Save the number 12345678.123456789123456789
When extracting data, we get 12345678.12345679