我的问题是,当分割两个整数时,我无法获得浮点值。 这是代码
{
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。 任何帮助都会被贬低。
答案 0 :(得分:5)
dalyba
函数的返回值为int。这应该是一个浮动。
float dalyba (int x, int y)
{
float z;
z = (float) x / y;
return z;
}
答案 1 :(得分:1)
问题是你的函数返回int
而不是float
,因此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;
}