C++将浮点数乘以分数

C++ multiply float by fraction

本文关键字:浮点数 C++      更新时间:2023-10-16

刚从MATLAB背景开始C++并感到困惑。

float farenheit, celcius;
cin >> farenheit;
celcius = (farenheit - 32) * (5 / 9);
cout << "Temperature (c): " << celcius;

为什么乘以 5/9 不能按预期工作,但这确实如此?

float farenheit, celcius;
cin >> farenheit;
celcius = ((farenheit - 32) * 5) / 9);
cout << "Temperature (c): " << celcius;

谢谢!

谢谢大家,

C++将59解释为int值,因此5/9也是一个int。 5/9 = 0.566,截断为0

若要解决此问题,请将.0.f附加到值,分别解释为双精度或浮点数。

C++认为 5 和 9 是整数,除法是整数除法,这意味着 5/9 = 0(它返回商(。

因此,如果您希望 5.0 和 9.0 成为浮点数,请使用它们。