问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

浮点数的比较

发布网友 发布时间:2022-05-07 10:28

我来回答

5个回答

懂视网 时间:2022-05-07 14:49

注释:以下部分主要与DOUBLE和FLOAT列相关,原因在于浮点数的不准确本质。MySQL使用64位十进制数值的精度执行DECIMAL操作,当处理DECIMAL列时,应能解决大多数常见的不准确问题。
浮点数有时会导致混淆,这是因为它们无法以准确值保存在计算机体系结构中。你在屏幕上所看到的值通常不是数值的准确值。对于FLOAT和DOUBLE列类型,情况就是如此。DECIMAL列能保存具有准确精度的值,这是因为它们是由字符串表示的。
在下面的示例中,介绍了使用DOUBLE时的问题:
mysql> CREATE TABLE t1 (i INT, d1 DOUBLE, d2 DOUBLE);
mysql> INSERT INTO t1 VALUES (1, 101.40, 21.40), (1, -80.00, 0.00),
-> (2, 0.00, 0.00), (2, -13.20, 0.00), (2, 59.60, 46.40),
-> (2, 30.40, 30.40), (3, 37.00, 7.40), (3, -29.60, 0.00),
-> (4, 60.00, 15.40), (4, -10.60, 0.00), (4, -34.00, 0.00),
-> (5, 33.00, 0.00), (5, -25.80, 0.00), (5, 0.00, 7.20),
-> (6, 0.00, 0.00), (6, -51.40, 0.00);
mysql> SELECT i, SUM(d1) AS a, SUM(d2) AS b
-> FROM t1 GROUP BY i HAVING a <> b;
+------+-------+------+
| i | a | b |
+------+-------+------+
| 1 | 21.4 | 21.4 |
| 2 | 76.8 | 76.8 |
| 3 | 7.4 | 7.4 |
| 4 | 15.4 | 15.4 |
| 5 | 7.2 | 7.2 |
| 6 | -51.4 | 0 |
+------+-------+------+
结果是正确的。尽管前5个记录看上去不应能进行比较测试(a和b的值看上去没有什么不同),但它们能进行比较,这是因为显示的数值间的差异在十分位左右,具体情况取决于计算机的体系结构。
如果列d1和d2定义为DECIMAL而不是DOUBLE,SELECT查询的结果仅包含1行,即上面显示的最后1行

热心网友 时间:2022-05-07 11:57

计算机对单精度浮点数的比较。
只可能是 数学意义上不相等的,处理成相等,因为精度毕竟有限。
如果是数学意义上相等,却处理成相等。这是不可能的。

你说的,不能使用 a == b比较。
应该是这么比较
float temp = fabs(a - b);
if ( -0.000001 < temp && temp < 0.000001)

热心网友 时间:2022-05-07 13:15

C里.什么类型的只能和什么类型比较如果你是float类型的.就必须和float比较.一般情况下和0比较就会用1e-6这是因为1e-6就是个很小的数了.我们可以看作0,当然你要用1e-7也没人拦你.但是为什么非得和0比呢?因为0不是一个float类型.为了解决这个问题就选用一个非常小的数来代替0.比如1e-6

热心网友 时间:2022-05-07 14:50

浮点数是不能用==这样的关系进行精确比较的,对于浮点数一般按照渐进接近于某一个很小的数来确定的 如 a-b<0.0000000000000001那么我们就认为a与b相等的。

热心网友 时间:2022-05-07 16:41

浮点数的比较只能是这样,例如a-b<0.000001
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 狼诱惑酱骨头(光明市场店)怎么样,好不好 丛林狼酱骨头。 丛林狼酱骨头到底好不好吃? 在电脑上新建《文本,文档》怎么设置密码? 如何快速学习 elasticsearch api 怎么写猫的英文的作文 谁有描写小猫的英文文章 my favorite animal英语作文,写小猫。急急急! 我喜欢的动物(猫)的英语作文,要30个单词一下,初中水平 求个写小猫的英语作文 谁能给我一篇用英文写的有关介绍猫的作文 关于小猫的英语作文(不少于八句话) 描写猫的英语作文(150字) 关于猫的英语作文,五句话。 描述小猫的英文作文 一篇描写猫的英语作文 初二写关于猫的英语作文 写一篇关于猫的英语作文60个词 有关初中生写猫的英语作文50词左右 借款10万做三年还一个月还多少钱 狼太爷酱骨头这个饭店名字好不好? 沈阳市狼的诱惑酱骨头,啤酒多少钱? 解放路98号怎么去,丛林狼酱骨头 文登房管局备案查询系统 威海房价走势2018预测,威海海景房抗压不贬值及讲价技巧?威海房哥微信多少? 威海大福源是哪个区?环翠还是经区?附近租房子的多吗?贵不贵? 威海裕荣华府怎么样?好不好?值不值得买? 威海市环翠区城投置业有限公司怎么样? 威海中南林清月怎么样?好不好?值不值得买? 谁能介绍下威海南海新区的发展前景,适不适宜在那购房居住。谢谢! 威海绿城威海桃李春风怎么样?好不好?值不值得买? 威海办第一套房房照所需资料及程序以及费用 二年级数学期中考试题:图中有几个锐角?有几个直角?有几个钝角 山东省威海市荣成市海湾南路210号小区叫什么? 威海地区有既好又便宜的房子吗 投资10万的原始股,股票美国上市。上市之后大约能赚多少?求专业解答 IPO是什么意思?在香港上市的公司,如果以IPO价格购入,收益会如何? 投资到一个公司上市以后能翻几倍 公司通过IPO进行融资,部分的股票卖给了股民,但是获得的资金用于公司的投资,那么请问投资后的收益应 怎么删除自己Q群空间里的相片啊?