私はC++で手を使っています。間違った値を与え続ける関数を書いています。C++は0.1の代わりに0を返す
私はこれを基本的に次の行に煮詰めました:double testD =(10/100); 0.1の代わりに0が返されます。
私はメジャーなものを見逃していたかもしれませんが、二重の小数点値があると思いましたか?私の人生にとって、私はこれを正しいものにすることはできません。
助けてください(たとえ私がひどく馬鹿げていても)。
私はC++で手を使っています。間違った値を与え続ける関数を書いています。C++は0.1の代わりに0を返す
私はこれを基本的に次の行に煮詰めました:double testD =(10/100); 0.1の代わりに0が返されます。
私はメジャーなものを見逃していたかもしれませんが、二重の小数点値があると思いましたか?私の人生にとって、私はこれを正しいものにすることはできません。
助けてください(たとえ私がひどく馬鹿げていても)。
10
および100
は整数である。これにより整数除算が行われ、0
と評価されます。その場合、0
はtestD
に格納されます。
浮動小数点除算を強制するには、数値のいずれかを浮動小数点または倍精度にキャストします。
((double)whatever)/something
返された整数値に.0を追加するエレガントな方法はありますか? – Mowen
私は私の答えを編集しました。ちょうど2倍にキャストします。 –
「10.0/100」を試してください。 – songyuanyao
それはうまくいくかもしれませんが、私が「煮詰めた」と言ったように。その式の10は、実際には10の整数値を返すクラスのtarget.getMagicDef()です。 – Mowen
それから 'static_cast(10)/ 100'。 –
songyuanyao