我必须遵循返回双重结果的代码。 我想把它围绕如下 如果结果是从0到999,我希望它向上舍入到下一个10,例如956.5,将其舍入到960。 如果结果是从1000到4999我希望它向上舍入到下一个50例如1116.5以将其舍入到1150。 如果结果是从5000到任何我希望它围绕到下一个1000例如10116.5以将其四舍五入到11000。
我的代码是
public void onClick(View v) {
String f = et1.getText().toString();
double i = Double.parseDouble(f);
String s = et2.getText().toString();
double j = Double.parseDouble(s);
String w = et4.getText().toString();
double q = Double.parseDouble(w);
double price_gold = 10;
double fpa = 10;
double fpol = 10;
double fpolam = 10000;
double isot = 10;
double sint_ker = 10;
double result1 = (i * price_gold) + (j * 1000) + (q * isot);
double result2 = result1 / 340.75;
if (result2 >= fpolam){
double result = result2 * 1.10;
String res = String.valueOf(result);
et3.setText(res);
} else{
double result = result2;
String res = String.valueOf(result);
et3.setText(res);
}
}
答案 0 :(得分:0)
您可以使用以下方法执行此操作:
double gap;
if(result < 1000)
{
gap = 10;
}
else if(result < 5000)
{
gap = 50;
}
else //5000+
{
gap = 1000;
}
int my_result = Math.ceil((result / gap)) * gap;
应该这样做:)
答案 1 :(得分:0)
和最终代码
int gap;
if (result2 >= fpolam){
double result = result2 * 1.10;
if(result < 1000)
{
gap = 10;
}
else if(result < 5000)
{
gap = 50;
}
else //5000+
{
gap = 100;
}
int total = (int) Math.ceil(result2 / gap) * gap;
String res = String.valueOf(total);
et3.setText(res);
} else{
}
答案 2 :(得分:-1)
我不会检查zozelfelfo代码是否能解决您的问题。但是您询问了如何在代码中实现此功能。由于我没有足够的声誉来评论,我需要回答。
关于您的问题:
只需将zozelfelfo的代码放入方法中:
private int calculate(double numberToCalculate) {
double gap;
if(numberToCalculate < 1000)
{
gap = 10;
}
else if(numberToCalculate < 5000)
{
gap = 50;
}
else //5000+
{
gap = 1000;
}
int my_result = Math.ceil((numberToCalculate / gap)) * gap;
return my_result;
之后,您可以通过onClick-Method调用此方法,如:
int myNewNumber = calculate(your number which you want to calculate);
如果您对方法完全熟悉,并且我只是告诉您已经知道的事情,那么我很抱歉。只想帮忙;)