3

хочу сделать универсальное приложение для разметки, чтобы проверить что-то из-за того, что я все еще новичок. Я получаю окончательный номер, я просто не знаю, как и где применять NumberFormat или DecimalFormat или как правильно Math.Round, поэтому я получаю только 2 десятичных знака. Я хочу выплюнуть все число, разделенное обратно в текстовое представление.Круглые до 2 десятичных знаков и проходят через TextView

final Button button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      thing1 = (EditText) findViewById(R.id.thing1); 
      if (TextUtils.isEmpty(thing1.getText().toString())) { 
       n1 = 0;} 
      else { 
       n1 = Integer.parseInt(thing1.getText().toString()); 
      } 

      thing2 = (EditText) findViewById(R.id.thing2); 
      if (TextUtils.isEmpty(thing2.getText().toString())) { 
       n2 = 0;} 
      else { 
       n2 = Integer.parseInt(thing2.getText().toString()); 
      } 

      if (n2 !=0){ 

      total = (n1/n2);} 

      final double total = ((double)n1/(double)n2); 

      final TextView result= (TextView) findViewById(R.id.result); 

      result.setText(Double.toString(total)); 

     } 

    }); 


} 
+0

попробуйте использовать BigDecimal класс –

+0

Может быть, это будет help.http: //stackoverflow.com/questions/153724/how-to-round-a-number-to-n -decimal-places-in-java – brainfreak

ответ

2

Попробуйте использовать метод string.Format(), это создаст строку с этим номером закругленный (вверх или вниз в зависимости от обстоятельств) до двух знаков после запятой.

String foo = String.format("%.2f", total); 
result.setText(foo); 
+0

отлично работает, спасибо! – pjhollow

0

вы можете использовать String.format()

result.setText(String.format("%.2f", total)); 

ИЛИ

использование Math.round()

Math.round(total*100.0)/100.0 

так:

result.setText(Double.toString(Math.round(total*100.0)/100.0)); 
1

Попробуйте использовать этот код:

DecimalFormat df = new DecimalFormat(); 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setGroupingSeparator(','); 
dfs.setDecimalSeparator('.'); 
df.setDecimalFormatSymbols(dfs); 
df.setMinimumFractionDigits(2); 
df.setMaximumFractionDigits(2); 
result.setText(df.format(n1/n2)); 

Надеясь это работа. Благодаря

0

Вы должны попробовать это

result.setText(String.format("%.2f", total)); 

 Смежные вопросы

  • Нет связанных вопросов^_^