2016-08-30 10 views
-6

申し訳ありませんが、簡単な質問はありますが、どのように変換できますか。 0x0DBEに29.4、0x8350に-12。ANSI C:浮動小数点値を短い変数に変換する方法

int ss_bat_temp = 294; //a temperatur in 0.1 Celsius 
fvalue = (float) ss_bat_temp/10; 
short svalue = (short)(fvalue); 

しかし、動作しません。

結果は0x001Dではなく0x001Dです。何が問題ですか?

誰かが私を助けることができますか?

+0

'short svalue =(short)(fvalue)'を使用します。私はそれが入力ミスだと思う –

+6

なぜ '0x0DBE'を期待していますか? –

+1

(短い)29.4 = 29 = 0x1D、問題は何ですか? –

答えて

0

フロートは長さが短く、短くて4(私は思う)です。浮動小数点から短いものに変換すると、それを縮小しなければならないので、それらの情報が失われます。

関連する問題