如何将双变量格式化为两位小数?

时间:2013-10-01 22:55:05

标签: android

我使用了decimal格式类将editText变量设置为我的格式变量mark1Format。但是我不知道如何将新的格式变量设置为result1 = (EditText)findViewById(R.id.mark1);我的意思是设置格式R.id.mark1Format.Anyone的变量在这里有解决方案吗?

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+"");
    }

1 个答案:

答案 0 :(得分: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两次......一个就足够了...... 其次尝试使用像这样的捆绑来获取你的双打:

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

然后你打电话

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

没有理由说它不起作用......这个功能在我的程序中起作用