所以这是我的问题,我们正在尝试将定价放入我们的数据库中,但由于某种原因它将 10.00 转换为 10 或 10.50 转换为 10.5,它只是将尾随的零砍掉....
我检查了 SQL 语句,它说 price=10.00 ....所以我真的很困惑为什么/在哪里剥离 .00
我一直检查我们输入数字的位置到插入或更新的最后一步,它一直保留尾随零,直到更新或插入,然后当您检查表时...零被丢弃
最佳答案
您是否使用 decimal(N,2)
类型或类似类型来存储数据?如果不是,那么这是正常行为。见http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
请不要遵循另一个答案中的建议,将其留给您的表示层。正确完成工作并存储精确的十进制值。这样就可以避免舍入问题。
ps 还有一个单独的问题,即在您使用的任何语言中如何管理值。希望它使用包含适当格式的特殊类型。如果不是,那么您可能需要担心如何处理代码中的值(一种可能是乘以 100 并使用整数美分,但是您需要注意数学正确舍入 - 这很复杂,但它之所以复杂是有原因的;如果你只是把所有东西都塞进 double ,它可能会很简单,但对于某些值会有一些奇怪的错误......)
关于mysql - 尾随零不进入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028688/