亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java中的除法總是導致零(0)嗎?

Java中的除法總是導致零(0)嗎?

神不在的星期二 2019-09-26 15:13:23
Java中的除法總是導致零(0)嗎?下面的函數從sharedpreferences中獲取兩個值,即weight和height,我用它們來計算BMI,當我打印這些值的內容時,我得到了我在sharedprefs中輸入的值(這很好),但是當我運行時對它們進行除法運算后,結果總是為0。錯誤在哪里?public int computeBMI(){     SharedPreferences customSharedPreference = getSharedPreferences(             "myCustomSharedPrefs", Activity.MODE_PRIVATE);     String Height = customSharedPreference.getString("heightpref", "");     String Weight = customSharedPreference.getString("weightpref", "");     int weight = Integer.parseInt(Weight);     int height = Integer.parseInt(Height);     Toast.makeText(CalculationsActivity.this, Height+" "+ Weight , Toast.LENGTH_LONG).show();     int bmi = weight/(height*height);     return bmi;}
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

您正在執行整數除法。

您需要將一個操作數強制轉換為double


查看完整回答
反對 回復 2019-09-26
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

您正在執行整數除法,將值float轉換為,并將變量的數據類型更改bmifloat。

像這樣:

float bmi = (float)weight/(float)(height*height);

您還應該將方法的返回類型更改public int computeBMI()float。

我建議您閱讀 stackoverflow問題。

在這里,您可以獲得Java 原始數據類型的列表及其完整說明。

希望能幫助到你!


查看完整回答
反對 回復 2019-09-26
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

因為bmi是整數。聲明bmiWeight, Height作為浮點數。在除法中使用整數時,將獲得整數除法。使用double / floats時,將得到浮點除法


查看完整回答
反對 回復 2019-09-26
  • 3 回答
  • 0 關注
  • 1426 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號