我使用了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+"");
}
答案 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));
没有理由说它不起作用......这个功能在我的程序中起作用