Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL在查询中循环,结果错误_Mysql_Sql_Database_Mysql 5.5 - Fatal编程技术网

MySQL在查询中循环,结果错误

MySQL在查询中循环,结果错误,mysql,sql,database,mysql-5.5,Mysql,Sql,Database,Mysql 5.5,我有一个关于我在MySQL服务器(v5.5.50-0+deb8u1)上运行的查询的问题 因此,金额值为12-85500000000000007=3.449999999993 但如果我运行查询: SELECT qty FROM Table WHERE id = 5213 它返回8.55,这是记录中写入的正确数字,因此我希望第一个query返回3.45 表“table”中的“qty”列为双精度 这怎么可能?如何从查询中获得正确答案? 提前谢谢好吧,就这样 浮点数有时会引起混淆,因为它们是 近似值

我有一个关于我在MySQL服务器(v5.5.50-0+deb8u1)上运行的查询的问题

因此,金额值为12-85500000000000007=3.449999999993

但如果我运行查询:

 SELECT qty FROM Table WHERE id = 5213
它返回8.55,这是记录中写入的正确数字,因此我希望第一个query返回3.45

表“table”中的“qty”列为双精度

这怎么可能?如何从查询中获得正确答案? 提前谢谢

好吧,就这样

浮点数有时会引起混淆,因为它们是 近似值,不作为精确值存储。浮点值作为 在SQL语句中写入的值可能与值不同 内部代表

此语句也适用于许多编程语言。有些数字甚至没有精确的表示。这里有一些来自

首先,在10进制中,这个问题更容易理解。考虑一下 分数1/3。您可以将其近似为以10为基数的分数:

0.3或更高

0.33或更高

0.333,依此类推。不管你愿意写多少个数字,结果永远不会精确到1/3,而是一个数字 越来越接近1/3

同样地,不管你愿意使用多少个2位小数 使用时,十进制值0.1不能精确表示为基数2 分数。在基数2中,1/10是无限重复的分数

所以简而言之,通常做的是
float1=float2
类型的比较是个坏主意,但每个人都一直忘记它

好吧,那太好了

浮点数有时会引起混淆,因为它们是 近似值,不作为精确值存储。浮点值作为 在SQL语句中写入的值可能与值不同 内部代表

此语句也适用于许多编程语言。有些数字甚至没有精确的表示。这里有一些来自

首先,在10进制中,这个问题更容易理解。考虑一下 分数1/3。您可以将其近似为以10为基数的分数:

0.3或更高

0.33或更高

0.333,依此类推。不管你愿意写多少个数字,结果永远不会精确到1/3,而是一个数字 越来越接近1/3

同样地,不管你愿意使用多少个2位小数 使用时,十进制值0.1不能精确表示为基数2 分数。在基数2中,1/10是无限重复的分数


所以简而言之,通常做的是
float1=float2
类型的比较是个坏主意,但每个人都一直忘记它

您可以将“数量”列定义为十进制(10,2)

您可以将“数量”列定义为十进制(10,2)

欢迎来到浮点运算的世界。欢迎来到浮点运算的世界。
 SELECT qty FROM Table WHERE id = 5213