Android java将double转换为int

时间:2014-11-10 13:13:57

标签: java android int double rounding

我必须遵循返回双重结果的代码。 我想把它围绕如下 如果结果是从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);
    }
}

3 个答案:

答案 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);

如果您对方法完全熟悉,并且我只是告诉您已经知道的事情,那么我很抱歉。只想帮忙;)