当前位置: 首页 > 面试题库 >

Java中的除法总是导致零(0)吗?

公羊喜
2023-03-14
问题内容

下面的函数从sharedpreferences中获取两个值,体重和身高,我用它们来计算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;

}

问题答案:

你正在执行整数除法。

你需要将一个操作数强制转换为double



 类似资料:
  • 问题内容: 我正在用Java做一些String算法,我注意到无论我在哪里包含一个值为0(零)的char,它都标志着String的结尾。像这样: 这种行为的原因/原因是什么? 问题答案: 该字符为空字符。这是一个控制字符,它 不会 终止字符串,这也不是字符串在Java中的工作方式(不过,字符串也是在C中的工作方式。)

  • 问题内容: 给我数组数据的二进制String表示形式。 但是,我想要一种添加前导零的简单方法,因为等于零的字节数组为我提供了“ 0”字符串。 我想要这样的一线客: 是正确的方法吗?如果是,我应该使用什么字符串?提前致谢! 编辑:数组是动态长度,因此前导零的数目也应如此。 问题答案: 对于使用5个前导零填充,这将起作用: 您没有指定字符串的预期长度,在上面我使用5的示例代码中,将其替换为适当的值。

  • 问题内容: 在Java中,如果将s,s或s相除,则总会得到一个。如果操作数之一是,我们将得到。 我的问题是-为什么或除法不会导致或?为什么总是? 显然,我不是在寻找“因为JLS这样说”的答案,而是在询问Java语言中此设计决策的技术原理。 考虑以下代码示例: 除以一个字节就不能了,可以吗? 那么为什么一定是一个?为什么不能有? 为什么必须如此,结果总是合适的,不是吗? 更新资料 正如@Eran所指

  • 问题内容: 我有字符串(来自DB),其中可能包含数字值。如果它包含数值,我想删除尾随零,例如: ,仅适用于第一个,而不适用于第二个。 很多答案都指向使用,但是我得到的可能不是数字。因此,我认为更好的解决方案可能是通过Regex。 问题答案: 有可能: 我懒又傻,只是 使用相同的解决方案,而不是某些注释中提到的,以便于理解

  • 我使用了来删除前导零,但它只在android软键盘中工作,而不是我自定义的。是零按钮。基本上,只要我按下零按钮,我的应用程序就会崩溃。 我只需要零按钮在点击时不会返回任何值的代码,以避免前导零。下面是 获取以下错误: