-2 c++
这是用C++编写的,我的程序问题将Celsius转换为Fahrenheit.
我遇到问题的一条线是我的转换方程线:
fahrenheitTemp = (9 / 5) * celsiusTemp + 32
Run Code Online (Sandbox Code Playgroud)
当我1.8代替时,等式/程序工作正常,9 / 5但由于某种原因,9 / 5永远不会乘以celsiusTemp.它总是返回值celsiusTemp + 32.
程序的其余部分是好的,它只是9 / 5没有做任何事情,我甚至尝试了所有不同类型的组合括号等.
你的问题是你使用整数除法而不是浮点除法.这个表达式:
9 / 5
Run Code Online (Sandbox Code Playgroud)
评估为:
1
Run Code Online (Sandbox Code Playgroud)
因为它扔掉了0.8其余部分.如果要使用浮点除法,则需要确保一个或两个操作数都是浮点类型:
fahrenheitTemp = (9.0 / 5.0) * celsiusTemp + 32;
Run Code Online (Sandbox Code Playgroud)
如果farenheitTemp是int,你还需要回到int以后.
fahrenheitTemp = static_cast<int>((9.0 / 5.0) * celsiusTemp + 32);
Run Code Online (Sandbox Code Playgroud)