为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 1374 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信