例如,
int result;
result = 125/100;
Run Code Online (Sandbox Code Playgroud)
要么
result = 43/100;
Run Code Online (Sandbox Code Playgroud)
结果总会成为师的底线吗?什么是定义的行为?
为什么在下面的代码片段中呢?
int a = 7;
int b = 3;
double c = 0;
c = a / b;
Run Code Online (Sandbox Code Playgroud)
c最终得到的值是2,而不是2.3333,正如人们所期望的那样.如果a和b双打,答案就变成2.333.但肯定是因为c 已经是双重它本来应该使用整数?
那怎么来int/int=double不行?
我正在研究其他的东西,但一切都是零,所以我做了这个简约的例子,输出仍然是0.
#include <iostream>
int main(int argc, char** argv)
{
double f=3/5;
std::cout << f;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
在进行分组时我得到一个圆润的答案?
double div;
div = 25/8;
printf("%lf",div);
Run Code Online (Sandbox Code Playgroud)
当我这样打印出来 3.0000
为什么我不明白3.125?