Mysql 尾随零不进入数据库

Mysql 尾随零不进入数据库,mysql,database,Mysql,Database,这就是我的问题,我们正试图将价格输入我们的数据库,但出于某种原因,它将10.00转换为10或10.50转换为10.5,它只保留了后面的零 我检查了SQL语句,它显示price=10.00。。。。所以我真的很困惑为什么/在哪里剥离.00 我一直在检查我们在插入或更新时输入的数字,直到最后一步,它一直保留尾随的零,直到更新或插入,然后当你检查表格时…零被删除。10与10相同。00与10.0相同 如果您想显示这些尾随数字,或者更常见的是2位小数,那么您需要编写代码来实现这一点。既然你没有说你用的是什么

这就是我的问题,我们正试图将价格输入我们的数据库,但出于某种原因,它将10.00转换为10或10.50转换为10.5,它只保留了后面的零

我检查了SQL语句,它显示price=10.00。。。。所以我真的很困惑为什么/在哪里剥离.00


我一直在检查我们在插入或更新时输入的数字,直到最后一步,它一直保留尾随的零,直到更新或插入,然后当你检查表格时…零被删除。

10与10相同。00与10.0相同


如果您想显示这些尾随数字,或者更常见的是2位小数,那么您需要编写代码来实现这一点。既然你没有说你用的是什么语言,我真的帮不了你。你是用
十进制(N,2)
类型还是类似的类型来存储数据?如果不是,则这是正常行为。看

请不要按照另一个答案中的建议去做,把这个留给你的演示层。正确执行此操作并存储精确的十进制值。这样就避免了取整问题


另外,还有一个单独的问题,即如何用您使用的任何语言管理值。希望它使用包含适当格式的特殊类型。如果没有,那么您可能需要担心如何处理代码中的值(一种可能是乘以100并使用整数美分,但你需要注意数学是否正确循环-这很复杂,但复杂是有原因的;如果你只是把所有东西都塞进双倍,可能很简单,但对某些值有一些奇怪的错误…)

它在数据库中的外观并不重要。重要的是你如何在应用程序中显示数据。10.00的值与10相同,因此在数据表中它将保存为10


您必须在输出之前格式化数字。

您的字段的类型是什么?我刚刚检查了DB中的列是双精度的……嗯,谢谢mitch,我将尝试格式化它注意:使用双精度数据类型存储货币值时要非常小心……确实是mitch。我会更进一步,建议不要这样做。使用
DECIMAL
类型instead。@Hammerite:是的,没错。我不知道我为什么迟钝!不要使用double来存储货币价值。+1.你是对的。在我意识到这是一个“价格”列之前,我对OP的问题键入了我的第一条评论。我不是…我使用的是double,我将尝试更改为Decimal。数据是通过使用PHPTA的对象检索的。请看这里-