我第一次发布在这里,但我必须知道这种简单的代码安静有什么问题:
#include <iostream>
using namespace std;
int main()
{
double test = (1 / 2) * 2;
cout << test << endl;
return 0;
}
当我运行它显示0的代码时,如果我正在构建某些东西,它会发生,无论我使用什么编译器,如果'1'被划分为某种形式的小数,它会返回更奇怪的结果。
答案 0 :(得分:5)
因为整数数学1 / 2 == 0
和0 * 2 == 0
。
请尝试使用1.0
和2.0
。
答案 1 :(得分:2)
在(1 / 2)
中,1和2都是整数,这意味着结果也是整数。这意味着表达式返回0
。 0 * 2
为0
。
要获得所需的结果,请尝试(1.0 / 2.0)
答案 2 :(得分:1)
如果你想得到正确的结果,你需要写:
#include <iostream>
using namespace std;
int main()
{
double test = ((double)1 / 2) * 2;
cout << test << endl;
return 0;
}
答案 3 :(得分:0)
您使用int
代替double
。
...定影
#include <iostream>
using namespace std;
int main()
{
double test = (1.0 / 2.0) * 2.0;
cout << test << endl;
return 0;
}