C++类型转换问题

2024-01-06

考虑以下代码:

#include <iostream>

using namespace std;

int aaa(int a) {
    cout << a * 0.3 << endl;
    return a * 0.3;
}

int main()
{
    cout << aaa(35000);
}

它打印出:

10500
10499

为什么输出不同?

我有一个解决方法,可以使用“return a * 3 / 10;”但我不喜欢它。

Edit:

发现执行“return float(a * 0.3);”给出期望值;


0.3*35000 的结果是一个浮点数,略小于 10500。打印时四舍五入为 10500,但当强制转换为 int 时,小数位将被丢弃,结果为 10499。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++类型转换问题 的相关文章

随机推荐