Mal*_*lum 0 java android multiplying operator-keyword
public void onClick(View v){
switch(v.getId()){
case R.id.bereken:
EditText basis = (EditText)findViewById(R.id.Basis);
String tussenBasis = basis.getText().toString();
Double.valueOf(tussenBasis);
//
EditText hoogte = (EditText)findViewById(R.id.Hoogte);
String tussenHoogte = hoogte.getText().toString();
Double.valueOf(tussenHoogte);
double half = 1 / 2;
//half = 0,5
double einde = half * basis * hoogte;
//eind antwoord formule
((TextView)findViewById(R.id.antwoord)).setText("Het antwoord is: " + einde);
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试为三角形区域制作一个简单的计算器,但我似乎被困在这里.
half * basis是非法basis的类型EditText(等等hoogte)你想要乘以half什么?也许你需要分配的结果Double.valueOf(tussenBasis)和Double.valueOf(tussenHoogte)一个以double变量和使用,在你的乘法?
EditText basis = (EditText)findViewById(R.id.Basis);
String tussenBasis = basis.getText().toString();
double basisDouble = Double.valueOf(tussenBasis);
//
EditText hoogte = (EditText)findViewById(R.id.Hoogte);
String tussenHoogte = hoogte.getText().toString();
double hoogteDouble = Double.valueOf(tussenHoogte);
double half = 1d / 2d;
//half = 0,5
double einde = half * basisDouble * hoogteDouble;
Run Code Online (Sandbox Code Playgroud)
另请注意从更改double half = 1 / 2;到double half = 1d / 2d;
(编辑以响应来自OP的注释)您需要使用"类型后缀" d来指定您的文字(字符1和2)是双重文字(请参阅"Java教程>原始数据类型" 的浮点文字部分,一个更简单的英文解释).
没有它,它们被解释为整数文字.具有两个整数变量的算术运算符导致执行整数除法(由于二进制数字提升将它们都视为整数).这给出了结果(作为整数)0.只有这样才能在赋值转换期间将结果扩展(使用加宽基元转换)为double .
| 归档时间: |
|
| 查看次数: |
8432 次 |
| 最近记录: |