【发布时间】:2017-12-09 06:40:09
【问题描述】:
我的 C++ 程序接受三个整数输入并进行一些计算,包括除法。起初,最终结果不是小数。在 Stack Overflow (Dividing two integers to produce a float result) 上搜索了一下后,我发现我应该添加一个 (float),如下所示:
int a;
int b;
float c;
a = 5;
b = 2;
c = (float)a / b;
所以我尝试了,但结果是 -nan(ind)。首先,这是什么意思?其次,如何让我的程序正常运行?
顺便说一下,这是我想在我的程序中做的数学运算。
int v;
int e;
int a;
float r;
r = ((float)e - v) / ((float)a / 1000);
编辑:对不起,我的错误。我的意思是在第二个示例中输入 1000,而不是 c。
【问题讨论】:
-
在您的第一个示例中
std::cout << c会得到什么? -
无法复制,
c对我来说是 2.5。问题可能在于您如何检查c的值。 -
您展示的第一个代码示例中没有任何内容可以执行此操作;第二个代码示例是无意义的,因为它使用了未初始化的变量。提供你能想出的最小的代码示例,编译、运行和显示问题。
-
表示c不是数字。所以要么你打印错了,要么你的代码不是你发布的代码(或者编译器有问题,我们可以排除)。
标签: c++ floating-point int precision integer-division