C++获取整数而不是浮点值
C++ getting integer instead of a float value
我的问题是,当除以两个整数时,我无法获得浮点值。这是代码
{
cout << "Kokie skaiciai?" << endl;
cin >> x;
cin >> y;
cout << "Atsakymas: " << dalyba(x, y) << endl;
}
和我使用的功能
int dalyba (int x, int y)
{
float z;
z = (float) x / y;
return z;
}
因此,如果 x = 5 且 y = 2,我得到的答案是 2 而不是 2.5。任何帮助将不胜感激。
dalyba
函数的返回值是一个 int。这应该是一个浮点数。
float dalyba (int x, int y)
{
float z;
z = (float) x / y;
return z;
}
问题是你的函数返回一个int
而不是一个float
,所以浮点结果被转换回一个整数,并被截断。您可能希望将函数的返回值类型从 int
更改为 float
。
此外,在现代C++中,您可能希望使用C++式演员表,例如 static_cast<>
.
以下代码片段按预期打印2.5
:
#include <iostream>
using namespace std;
float f(int x, int y) {
return static_cast<float>(x) / y;
}
int main() {
cout << f(5, 2) << endl;
}
相关文章:
- 快速扫描标准以获取整数不起作用
- 只要用户输入,如何从用户那里获取整数?
- 如何从另一个类动态获取整数?
- 控制台在获取整数后暂停
- 在某些范围更新后获取整数数组的最终状态的有效算法是什么?
- 如何从从 MPU 陀螺仪发送的字节数组中获取整数
- 如何在C 中获取整数数组的元素
- 如何打破循环以在C 中获取整数数组
- 火炬C++:使用 *.data() 获取整数张量的值<int>
- 从.txt文件中获取整数
- 从C 中的系统函数中获取整数(大于255)
- 从集合中随机给定整数 0、1 和 2 时获取整数 0、1 和 2 的快速方法
- 使用boost::random库获取整数随机值而不是实数
- 从文件 C++ 获取整数
- C++从迭代器中获取整数形式的索引值
- 如何使用zmq/zeromq从传递给python的字符串表示(字节数组)中获取整数/浮点数
- 从xml中获取整数和浮点值
- 获取整数bitset中前导1位置的最快方法
- c++中无法从stringstream中获取整数
- 如何在visual studio 2013中使用c++从文本文件中获取整数