首页 > 试题广场 >

float x 与“零值”比较的if语句为()

[单选题]
float x 与“零值”比较的if语句为()
  • if (x == 0)
  • if (x < 0.00001f)
  • if (fabs(x) < 0.00001f) 或 if(Math.abs(x) < 0.00001f)
  • if (x > -0.00001f)
推荐
答案:C
folat类型的还有double类型的,这些小数类型在趋近于0的时候直接等于0的可能性很小,一般都是无限趋近于0.因此不能用==来判断。应该用|x-0|<err来判断,这里|x-0|表示绝对值,err表示限定误差
用程序表示就是fabs(x)<0.00001f
编辑于 2015-01-10 11:33:50 回复(6)
Java中可以直接用==
发表于 2016-06-13 10:01:44 回复(4)
咱能说java中可以用==比较么。。。还有fabs()方法不是java的吧,是我走错题区了吗- -!
发表于 2016-10-06 18:34:34 回复(0)
浮点数在运算后存在截尾误差,所以在比较的时候要考虑这个误差,在误差允许范围内相等就是相等了。
发表于 2015-09-21 08:56:46 回复(0)
C
fabs取绝对值函数
发表于 2015-01-18 16:39:10 回复(0)
发表于 2017-03-13 09:39:46 回复(1)
在java中,不论是float a =0.1(报错),还是double b = 0.1,都是相当于定义的是double类型,需要强转或者float a = 0.1f。

这个题的解析在java中并不需要。
发表于 2016-09-17 14:09:58 回复(0)
题中说的是与“零值”比较。0就是0,没什么好说的。
发表于 2016-07-22 11:00:35 回复(0)
浮点数与整数不同,他们是有精度限制,在一定精度误差范围内都是正确的。误差取值范围为+-
发表于 2015-11-22 20:17:12 回复(2)
C:
       不可将浮点变量用“==”或“!=”与任何数字比较。
       千万要留意,无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
       假设浮点变量的名字为x,应当将 if (x == 0.0) 转化为   if ((x>=-EPSINON) && (x<=EPSINON))
或者 if ( fabs(x) <=EPSINON)  // fabs(x)取x的绝对值
其中EPSINON是允许的误差(即精度)。
编辑于 2015-10-02 09:47:23 回复(4)
if( x < 0.000001 && x > -0.000001)
发表于 2021-03-16 20:40:32 回复(0)

0不就是0,不等于0的小数也叫0?????


发表于 2019-10-23 15:54:47 回复(1)
发表于 2018-03-26 09:59:58 回复(0)
走错片场了 这是c和js 的。。。oc 中做了优化
发表于 2017-11-07 15:36:44 回复(0)
三短一长选一长
发表于 2017-10-17 23:34:42 回复(0)
好无聊的题目
发表于 2017-07-30 23:45:52 回复(0)
为什么ABCD都能编译运行呢?
发表于 2017-06-27 14:56:35 回复(0)

C

发表于 2017-04-04 13:23:52 回复(0)
我觉得无关Java还是C++;
浮点型都是不太稳定的,所以还是最好注意点;
比如下面的情况: 所以说该误差误差!! 小心点
发表于 2017-04-03 15:04:23 回复(0)
在Java中ABD都对😂
发表于 2017-03-09 00:02:07 回复(0)
OC用着没问题啊
发表于 2017-02-04 17:11:02 回复(0)