C++ 将浮点数乘以分数

C++ multiply float by fraction

刚从 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(它 returns 商)。

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