mysql - 为什么这个奇怪的MYSQL会导致 split ?

标签 mysql

我有一个像这样的 SQL 查询:

UPDATE t_example 
SET column1=column2/column3 
where 'SOME CLAUSE'

假设 column2 的值为 7,column3 的值为 1,在该语句之后 column1 应设置为值 7,但它始终为 6 而不是 7。对于除数为 1 的任何一对值,结果总是减 1。我没有检查 1 以外的值,但为什么会出现这种情况?

最佳答案

这可能是 float 不准确。

您的 column2 可能是一个 float ,而 column1 是一个 int。如果计算结果为 6.999999999,则转换为 int 的结果为 6

如果您需要精确度,那么您应该使用定点 数据类型like decimal .

关于mysql - 为什么这个奇怪的MYSQL会导致 split ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18822785/

相关文章:

c++ - 数据库连接对象的名称游标的历史记录是什么?

php - 搜索两列并回显结果的范围

php - 为数据库中的每个 ID 维护一个字符串队列

mysql - 从两个表中选择并求和数量(mysql)

mysql - 在连接上使用计数 - MYSQL

php - 查找在 PHP 中完成的更新数量

php - 在表单提交时更新缓存文件

java - 从 javascript/AJAX 调用 MySQL 查询

mysql - Spring Boot JPA 从缓存

php - PHP 可以同时处理多个请求,还是一个接一个?