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++ 将 5
和 9
解释为 int
值,因此 5/9
也是一个 int
。
5/9 = 0.566 被截断为 0
.
要解决此问题,请将 .0
或 .f
附加到分别解释为双精度或浮点数的值。
C++ 认为 5 和 9 是整数,除法是整数除法,这意味着 5/9 = 0(它 returns 商)。
因此,如果您希望它们是浮点数,请使用 5.0 和 9.0。
刚从 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++ 将 5
和 9
解释为 int
值,因此 5/9
也是一个 int
。
5/9 = 0.566 被截断为 0
.
要解决此问题,请将 .0
或 .f
附加到分别解释为双精度或浮点数的值。
C++ 认为 5 和 9 是整数,除法是整数除法,这意味着 5/9 = 0(它 returns 商)。
因此,如果您希望它们是浮点数,请使用 5.0 和 9.0。