【发布时间】:2016-08-30 08:47:38
【问题描述】:
对不起这个简单的问题,但我怎样才能转换 f.e. 29.4 到 0x0DBE 和 -12 到 0x8350。
int ss_bat_temp = 294; //a temperatur in 0.1 Celsius
fvalue = (float) ss_bat_temp / 10;
short svalue = (short)(fvalue);
但它不起作用。
结果是 0x001D 而不是 0x0DBE。有什么问题?
有人可以帮我吗?
【问题讨论】:
-
你为什么期待
0x0DBE? -
这听起来对我来说是正确的。
294.0 / 10是29.4,将其转换为整数会将其截断为29,即0x1d。 -
您的代码工作正常,它给出了 0x1d 的预期结果。你为什么期待 0x0DBE ?
-
抱歉,我们不清楚 0x0DBE 如何是 29.40 的正确值,您必须解释一下。
-
如果您能告诉我们为什么您想要这个也会很有帮助?您要解决的实际问题是什么?请阅读the XY problem。
标签: c