2016-04-17 4 views
0

私は2つの値を一緒に加算しようとしています。そうしようとすると、小数点以下の桁は値に追加されません。二重の値が加算されない

int pearInt = (int) Double.parseDouble(pear.getText()); 
int appleInt = (int) Double.parseDouble(apple.getText()); 

double result = pearInt + appleInt; 

total.setText("" + result); 

pear.getText() & apple.getText()35.516.5でテキストフィールドから取得しています。

int pearInt = (int) Double.parseDouble(pear.getText()); 
int appleInt = (int) Double.parseDouble(apple.getText()); 

あなたはダブルスをキャストしているので、この意志は、2 int型を生成します。私は一緒にそれらを追加しようとすると、私はそれが52.0を表示したいが、それは51.0

+2

デバッガでコードをステップ実行すると、 'int'値にキャストするときに分数をドロップすることがわかります。これをやりたくない場合は、キャストを取り出して 'double'を使います。 –

+2

'int'と' double'の違いは何だと思いますか? –

答えて

1

を表示しています問題は、あなたの合計は2つのintのです。簡単に次のように変更してください:

double pearInt = Double.parseDouble(pear.getText()); 
double appleInt = Double.parseDouble(apple.getText()); 

あなたはいいです。

+0

馬鹿感謝の男のように感じる:) –

1

あなたはintにdouble型をキャストするので。浮動小数点値を整数にキャストすると、ドットの後ろのすべてが削除されます。 実際に計算する35 +16

関連する問題