2017-11-29 22 views
-1

5/9 1/2 ...のような小数点以下の桁数を入力して二重または浮動小数点として初期化すると、私は矩形を使用すると画面上に0枚の印刷物が表示されます ここにありますコード:浮動小数点数型のC++での浮動小数点問題

#include <iostream> 
using namespace std; 
int main() { 
double n = 5/9; 
cout <<n; 

return 0; 
} 

例:5/9それは0(私が取得すると仮定答えは0.5555556である) 1/2それは0(私は0.5を取得すると仮定し、答えを)印刷し なぜのdidn」を出力しますそれは想定値のように印刷されますか?私はすでにdoubleとfloatが小数点の値として使われていることを知っていますが、ポイントの後ろには0しか表示されません。

+0

整数除算の結果は「0」となり、暗黙的にfloatに変換されます。したがって、「0」の結果。 – Ron

答えて

1

2つのリテラル整数を分割するため、結果は0に切り捨てられます(除算は1未満です)。正しい結果を得るにはdouble n = 5.0/9.0;を実行する必要があります。したがって、除算は2つの浮動小数点数の間にあります。

関連する問題