首页 > 试题广场 >

float 类型的变量 a = 0...

[单选题]
float 类型的变量 a = 0.5,以下 float 变量可以认为和 a 相当的是?
  • b = 1/2
  • b = 1 - 0.5
  • b = 1 - 1/2
  • 其他三个选项都不是
B选项的0.5在C++中默认为double类型,所以b不是double类型吗?如果是只看值相等的话就选B了
发表于 2020-04-11 13:58:48 回复(2)
1 / 2 = 0(先整数运算输出后类型转换);应改成1.0 / 2。
发表于 2022-05-20 16:03:07 回复(0)
1/2==01.0/2==1/2.0==1.0/2.0==0.5
发表于 2021-02-24 10:18:29 回复(0)
float a = 0.5;
cout << (1 - 0.5)<<","<<(a == (1 - 0.5)) << endl;
cout <<(1 - 1 / 2)<<","<<(a == (1 - 1 / 2)) << endl;
//int 
cout <<typeid(1 - 1 / 2).name() << endl;
// double
cout << typeid(1 - 0.5).name() << endl;
a = 1 - 0.5;
cout << typeid(a).name() << endl;
由下图可知,1/2会直接向下取整转为int,结果为0,1-0.5是double类型的0.5,但会发生隐式转换,故与0.5相等
发表于 2023-12-05 20:36:52 回复(0)
发生隐式转换
发表于 2023-11-29 20:55:09 回复(0)