A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiezhongmin 中级黑马   /  2014-12-26 23:57  /  2248 人查看  /  20 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有一个浮点型变量x,如何判断x的值是否为0?

20 个回复

倒序浏览
什么题啊
回复 使用道具 举报
没人知道么?
回复 使用道具 举报
是你们自负不削回答,还是真的不知道。  :lol楼主友情提示,自负会是你成为高手的最大阻碍,你可能会漏掉很多知识点!!!
回复 使用道具 举报
这个题目怎么能这么问呢,其他的什么都不知道吗
回复 使用道具 举报
留个脚印,我以后来看
回复 使用道具 举报
就是个条件 判断题需要知道什么?
回复 使用道具 举报
shicuf 中级黑马 2014-12-27 09:34:15
8#
x > -0.000001 && x < 0.000001
回复 使用道具 举报
shicuf 发表于 2014-12-27 09:34
x > -0.000001 && x < 0.000001

恩,回答正确,一般会写成:|x-0.000001|<=0.000001;

点评

呵呵,我用得少!  发表于 2014-12-28 00:45
回复 使用道具 举报
bun 中级黑马 2014-12-27 21:52:57
10#
value - (int)value ==0&&(int)value==0  前边表达式判断是否有小数位 后边判断整数位为0,我觉得应该有更好的方法
回复 使用道具 举报
可以做&运算吗?(与1做与运算),与1做与运算不是可以保留原来的值吗???不太清楚
回复 使用道具 举报
bun 发表于 2014-12-27 21:52
value - (int)value ==0&&(int)value==0  前边表达式判断是否有小数位 后边判断整数位为0,我觉得应该有更好 ...

你没有弄清楚double类型数据的存放问题,先了解清楚,再求证自己的思路是否正确,加油,编程就是要多猜测多证明!
回复 使用道具 举报
学习了啊,,
回复 使用道具 举报
bun 中级黑马 2014-12-29 06:48:56
14#
xiezhongmin 发表于 2014-12-28 00:19
你没有弄清楚double类型数据的存放问题,先了解清楚,再求证自己的思路是否正确,加油,编程就是要多猜测 ...

IEEE 双精度格式为8字节64位,由三个字段组成:52 位小数 f ; 11 位偏置指数 e ;以及 1 位符号 s。
这些字段连续存储在两个 32 位字中。
看来是学习了。
回复 使用道具 举报
受教了!!!!!!
回复 使用道具 举报
受教了!!!!
回复 使用道具 举报
这个真不会!
回复 使用道具 举报
总结下:
如果是float类型就直接判断: if (f == 0.0);
如果是double类型就判断:if (fabs(d) < EPSILON) 或是 if (fabs(d) < 0.000001);
回复 使用道具 举报
if(x^0.0==0.0)可以不?
回复 使用道具 举报
bun 发表于 2014-12-29 06:48
IEEE 双精度格式为8字节64位,由三个字段组成:52 位小数 f ; 11 位偏置指数 e ;以及 1 位符号 s。
这 ...

因为在计算机中,double类型数据也就是说有小数位的数值,是无法准确的存储的,比如:10.23存储的值可能是10.229999999999999......所以判断它是否为0只能判断它的误差接近为0而不是0.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马