2016-08-09 2 views
-1

私はC++で手を使っています。間違った値を与え続ける関数を書いています。C++は0.1の代わりに0を返す

私はこれを基本的に次の行に煮詰めました:double testD =(10/100); 0.1の代わりに0が返されます。

私はメジャーなものを見逃していたかもしれませんが、二重の小数点値があると思いましたか?私の人生にとって、私はこれを正しいものにすることはできません。

助けてください(たとえ私がひどく馬鹿げていても)。

+0

「10.0/100」を試してください。 – songyuanyao

+0

それはうまくいくかもしれませんが、私が「煮詰めた」と言ったように。その式の10は、実際には10の整数値を返すクラスのtarget.getMagicDef()です。 – Mowen

+0

それから 'static_cast (10)/ 100'。 – songyuanyao

答えて

0

10および100は整数である。これにより整数除算が行われ、0と評価されます。その場合、0testDに格納されます。

浮動小数点除算を強制するには、数値のいずれかを浮動小数点または倍精度にキャストします。

((double)whatever)/something 
+0

返された整数値に.0を追加するエレガントな方法はありますか? – Mowen

+0

私は私の答えを編集しました。ちょうど2倍にキャストします。 –

関連する問題