MySQL在查询中循环,结果错误
我有一个关于我在MySQL服务器(v5.5.50-0+deb8u1)上运行的查询的问题 因此,金额值为12-85500000000000007=3.449999999993 但如果我运行查询: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”列为双精度 这怎么可能?如何从查询中获得正确答案? 提前谢谢好吧,就这样 浮点数有时会引起混淆,因为它们是 近似值
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