0

我已经使用十进制格式类将editText变量设置为我的格式变量mark1Format。但是我不确定如何将新格式变量设置为此result1 = (EditText)findViewById(R.id.mark1);我的意思是将格式变量设置为R.id.mark1Format。任何人都有解决方案这里?

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.result);
        result1 = (EditText)findViewById(R.id.mark1);
        result2 = (EditText)findViewById(R.id.mark2);


        Intent intent = getIntent();
        double mark1 = intent.getDoubleExtra("number1", 0);
        double mark2 = intent.getDoubleExtra("number2", 0);

      //format to two decimal places
        DecimalFormat df = new DecimalFormat("#.00");
        String mark1Format = df.format(mark1);
        String mark2Format = df.format(mark2);


        //set the variables on EditTexts like this :
        result1 = (EditText)findViewById(R.id.mark1);
        result2 = (EditText)findViewById(R.id.mark2);
        result1.setText(mark1+"");
        result2.setText(mark2+"");
    }
4

1 回答 1

0

这个函数将返回只有你想要的小数点的双精度......

public static double round(double value, int places) {
   if (places < 0){
        return value;
   }
   BigDecimal bd = new BigDecimal(value);
   bd = bd.setScale(places, BigDecimal.ROUND_HALF_UP);
   return bd.doubleValue();
}

享受 编辑

对我来说,这非常有效......尝试这样做:首先不需要初始化 result1 和 result2 两次......一个就足够了......其次尝试使用 bundle 来获得你的双打,如下所示:

Intent intent = new Intent();
intent = getIntent();
Bundle bundle = intent.getExtras(); 
mark1= bundle.getDouble("value");

然后你就打电话

result1.setText(round(mark1,2));

没有理由它不应该工作......这个功能在我的程序中工作

于 2013-10-01T22:56:51.813 回答