C++整数除法到浮点数
C++ Integer Division to Float
我的C++程序接受三个整数输入,并进行一些计算,包括除法。起初,最终结果不是小数。在堆栈溢出上搜索了一点(除以产生浮点结果)后,我发现我应该添加一个(浮点数),如下所示:
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。
尝试将每个变量转换为浮点数,看看是否可以解决问题。此外,在第二个示例中,您永远不会初始化变量,这会导致错误,因为它们的值未定义,它可以是任何东西。您也忘了包含变量 c。
查看这是否引发错误:
int v = 1;
int e = 1;
int a = 1;
int c = 1;
float r;
r = ((float)e - (float)v) / (float)a / (float)c;
另外,对于类型之间的转换,我建议您使用"static_cast<类型>(变量)"而不是"(类型)变量"。这是在 c++ 中强制转换类型的推荐方法,它还使转换在调试时更容易发现。您的代码如下所示:类型>
int v = 1;
int e = 1;
int a = 1;
int c = 1;
float r;
r = (static_cast<float>(e) - static_cast<float>(v)) / static_cast<float>(a) / static_cast<float>(c);
您必须像第一个示例一样初始化每个变量,并为每个变量分配值。
试试这个:
int v;
int e;
int a;
int c;
float r;
a = 5;
c = 2;
e = 5;
v = 2;
r = ((float)e - v) / (float)a / c;
cout << r;
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 使用提升将数据从 PyObject 复制到浮点数 *
- 使用浮点数和双精度数的非常小数字的数学
- 使用 int 表示浮点除法 C++
- 使用英特尔内联函数将打包的 8 位整数乘以浮点数向量
- 如何在 c++ 中将小数点后两位数的浮点数分配给另一个浮点数
- 返回浮点数的小数位数
- txt 文件中浮点数的最大和最小值
- 为什么 std::cout 打印浮点数、双精度和长双精度到相同的小数精度?
- 分配给浮点数的积分文字除法 - 为什么结果是错误的?
- 将 int 128 除法提升为浮点数
- C++整数除法到浮点数
- 小数浮点数缺少除法 (C++)
- 将整数除法到整数是否需要强制转换以浮点数或双精度以更精确
- 如何将转换 int 除法键入为浮点数
- 整数除法或浮点数乘法
- 被保证产生相同浮点数的整数除法
- 浮点数- c++中的除法和计数问题