C++获取整数而不是浮点值

C++ getting integer instead of a float value

本文关键字:获取 整数 C++      更新时间:2023-10-16

我的问题是,当除以两个整数时,我无法获得浮点值。这是代码

{
    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;
}