这是在android studio中用Java编码的代码
所以我在编码方面是一个菜鸟,我正尝试使用开发人员共享的计算公式为此mmorpg创建此损坏计算器时遇到问题。
所以这就是我最初编写程序的方式:
double skill, bonus, level, attack, min, max, avg, min2, avg2, max2;
EditText txtskill;
EditText txtbonus;
EditText txtlevel;
EditText txtattack;
TextView resmin;
TextView resavg;
TextView resmax;
TextView resmin2;
TextView resavg2;
TextView resmax2;
Button btncalculate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtskill = findViewById(R.id.txtskill);
txtbonus = findViewById(R.id.txtbonus);
txtlevel = findViewById(R.id.txtlevel);
txtattack = findViewById(R.id.txtattack);
resmin = findViewById(R.id.txtmin);
resavg = findViewById(R.id.txtavg);
resmax = findViewById(R.id.txtmax);
resmin2 = findViewById(R.id.txtmin2);
resavg2 = findViewById(R.id.txtavg2);
resmax2 = findViewById(R.id.txtmax2);
btncalculate = findViewById(R.id.btncalculate);
btncalculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
skill = Double.parseDouble(txtskill.getText().toString());
bonus = Double.parseDouble(txtbonus.getText().toString());
level = Double.parseDouble(txtlevel.getText().toString());
attack = Double.parseDouble(txtattack.getText().toString());
DecimalFormat df = new DecimalFormat("0.00");
min = ((skill + bonus) / 2 + level / 4 + attack) * 0.9;
max = ((skill + bonus) / 2 + level / 4 + attack) * 1.1;
avg = (min + max) / 2;
min2 = min * 1.05;
max2 = max * 1.05;
avg2 = avg * 1.05;
resmin.setText(df.format(min));
resavg.setText(df.format(avg));
resmax.setText(df.format(max));
resmin2.setText(df.format(min2));
resavg2.setText(df.format(avg2));
resmax2.setText(df.format(max2));
}
});
}
哪个效果很好...但是问题是事实证明,游戏中的实际伤害输出实际上是使用整数或在每个括号内四舍五入来计算的...
所以这就是我尝试解决的方法:
int skill, bonus, level, attack, min, max, avg, min2, avg2, max2;
EditText txtskill;
EditText txtbonus;
EditText txtlevel;
EditText txtattack;
TextView resmin;
TextView resavg;
TextView resmax;
TextView resmin2;
TextView resavg2;
TextView resmax2;
Button btncalculate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtskill = findViewById(R.id.txtskill);
txtbonus = findViewById(R.id.txtbonus);
txtlevel = findViewById(R.id.txtlevel);
txtattack = findViewById(R.id.txtattack);
resmin = findViewById(R.id.txtmin);
resavg = findViewById(R.id.txtavg);
resmax = findViewById(R.id.txtmax);
resmin2 = findViewById(R.id.txtmin2);
resavg2 = findViewById(R.id.txtavg2);
resmax2 = findViewById(R.id.txtmax2);
btncalculate = findViewById(R.id.btncalculate);
btncalculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
skill = Integer.parseInt(txtskill.getText().toString());
bonus = Integer.parseInt(txtbonus.getText().toString());
level = Integer.parseInt(txtlevel.getText().toString());
attack = Integer.parseInt(txtattack.getText().toString());
min = ((skill + bonus) / 2 + level / 4 + attack) * 0.9;
max = ((skill + bonus) / 2 + level / 4 + attack) * 1.1;
avg = (min + max) / 2;
min2 = min * 1.05;
max2 = max * 1.05;
avg2 = avg * 1.05;
// ^^在这一部分,我开始使用值进行计算,调试器告诉我,它期望加倍]]
resmin.setText(min)); resavg.setText(avg)); resmax.setText(max)); resmin2.setText(min2)); resavg2.setText(avg2)); resmax2.setText(max2)); } }); }
所以我的问题是,如何使该程序使用整数或至少将每个括号内的所有内容四舍五入?感谢您提前提供答案!
[这是在android studio中用Java编码的,所以我对编码一无所知,我正尝试使用基于计算公式的mmorpg为这个mmorpg创建的此损坏计算器有问题...
从变量的定义返回到原先的两倍