在我尝试创建计算器时。为什么必须在firstnum和secondnum之后添加双空引号。是转换器还是其他任何东西。因为我看到的只是两个引号之间的空白。
eqaul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(ADDITION || SUBTRACTION || MULTIPLICATION || DIVIDE)
secondnum = Float.parseFloat(editText.getText() + "" );
if(ADDITION){
editText.setText(firstnum + secondnum + "");
ADDITION = false;
}
答案 0 :(得分:1)
firstnum和secondnum都是Float类型,所以似乎将它们相加将导致Float,setText()方法采用String而不是Float,当添加+“” java时,会自动将2个Floats的相加转换为一个字符串,请考虑是否有:
editText.setText(5 + " apples");
然后Java会认为您想要一个字符串“ 5 apples”,这就是为什么它将字符串之前的int转换为字符串表示形式,然后将其附加到“ apples”的原因。
答案 1 :(得分:1)
这是为了强制将整数值(firstnum + secondnum
的结果)转换为字符串,这是setText()
要求的参数。还有setText()
接受int
(您正在使用浮点数,所以无论如何都不是),但是int会被用作不是您想要的字符串资源的ID,因此需要转换为字符串。它也只是减少打字。基本上等同于替换:
editText.setText(firstnum + secondnum + "");
具有:
editText.setText(String.valueOf(firstnum + secondnum));
答案 2 :(得分:0)
+是重载运算符 当它在两个数字之间时,会将它们相加 但是添加“”将使它成为字符串
答案 3 :(得分:-1)
setText需要一个字符串。
如果要从int获取字符串,则可以使用String.valueOf(i)
或i+""
。