24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1237  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

H518616171

新虫 (初入文坛)

[求助] 大佬帮忙解答一下误差问题已有2人参与

a=10000,b=10000.1,c=b-a,让计算机输出c/0.1-1,为什么我用电脑算出来是10^-3,别的同学用c++算出来是10^-12,为什么我的误差这么大?

发自小木虫IOS客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chuntao118

新虫 (著名写手)

4楼2019-11-22 08:30:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

jjdg

版主 (知名作家)

优秀版主

【答案】应助回帖

感谢参与,应助指数 +1
正常的,这个跟你用的程序和机器的cpu有关,不同cpu因为指令有差异,所以在精确位数上是不同的,你就用“a=10000,b=10000.1,c=b-a”这3行,看看c等于多少就清楚了
努力学习!以正当途径!获得需要的知识!
2楼2019-09-16 19:35:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

【答案】应助回帖

主要是和你们所选数据类型的精度有关,和是否c++无关(不知道你是用什么算的)。比如你用4字节数据类型(32位,c++可能是float或者single,记不清了),除去符号位和指数位,剩下的尾数用20多位来表示。那么精度就是1/2^20,小数点后6-7位,去掉前面10000,误差在小数点后3位合理。如果用8字节,那么精度可能是1/2^50,即小数点后15-6位,去掉前面10000,误差在小数点后12位也合理。
3楼2019-10-28 12:49:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

flyingair007

银虫 (正式写手)

检查一下变量类型
是double还是float
5楼2019-12-05 23:35:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见