我遇到的问题是sqlite没有显示不是2位小数的值,但是当我在MySQL(工作台)上测试它时它工作正常。我没有给出错误或任何东西,只是悄然消失。我想要到达这个伏都教的底部,所以它不会再回来咬我了。
MY_CHOICE = (
(Decimal('20.00'), '20'), /#doesnt work with sqlite
(Decimal('20.00'), '20.00'), /#doesnt work with sqlite
(Decimal('10.50'), '10.50'), /#doesnt work with sqlite
(Decimal('5.05'), '5.05'), /#works with sqlite
(Decimal('4.75'), '4.75'), /#works with sqlite
)
my_model = models.DecimalField(max_digits=6, decimal_places=2, choices=My_CHOICE, null=True, blank=True)
任何可能有用的想法或想法都会很棒。感谢。
答案 0 :(得分:1)
SQLite是非常“民主”和轻量级的数据库。例如,您可以声明VARCHAR(20)字段并向其写入30个符号的字符串,而不会出现任何错误或警告消息。
来自SQLite documentation:
字符串可能看起来像带有小数点和/或指数表示法的浮点字面值,但只要该值可以表示为整数,NUMERIC亲和关系就会将其转换为整数。因此,字符串'3.0e + 5'存储在NUMERIC亲和力为整数300000的列中,而不是浮点值300000.0。