如何强制小数点后的两位数

我有以下TextView,它始终显示$ 0.00,除非在单击按钮并保存到此TextView后进行任何计算。

  

当我运行应用程序时,它显示$ 0.0(这将起作用,除了我正在使用美元和美分,我希望它显示小数后的两位数,除非两个数字都是00)

我正在使用SharedPreferences ,这是我在应用程序中的代码:

onCreate()

 float totalTollAmount = 0; tollAmount = (EditText) mFrame2.findViewById(R.id.etToll); //where the amount is entered tollAmount.setFilters(new InputFilter[] {new DecimalFilter(6, 2)}); tvTotalAmountLabel = (TextView) mFrame2.findViewById(R.id.tvTotalAmount); //holding total amount if (Float.toString(prefs.getFloat("dblTollAmount", 0)) != "0.0") { tollAmount.setText(Float.toString(prefs.getFloat("dblTollAmount", 0))); } tvTotalAmountLabel.setText("$" + Float.toString(prefs.getFloat("totalTollAmount", 0))); //retrieves the total toll amount and displays btnCalc.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { strTollAmount = tollAmount.getText().toString(); strInfName = nameOfInf.getText().toString(); String k = ""; if (strTollAmount.length() != 0 && strInfName.length() != 0) { float dblTollAmount = Float.parseFloat(strTollAmount); submitInfo(dblTollAmount); } Toast.makeText(getActivity(), k, Toast.LENGTH_SHORT).show(); } }); private void submitInfo(float toll) { y = "TEST"; if (y != null) { editor.putString("someId", y); totalTollAmount = round(toll + prefs.getFloat("totalTollAmount", 0)); tvTotalAmountLabel.setText("$" + Float.toString(totalTollAmount)); } else { editor.putString("someId", ""); } editor.putString("previous-trip", y); editor.putFloat("totalTollAmount", round(totalTollAmount)); //editor.commit(); removed on 8/3 if (nameOfInf != null && nameOfInf.length() > 0) { // added on 8/3... //Clear out this value from Enter Data tab ONLY if Calculate happens } if (tollAmount != null && tollAmount.length() > 0) { //Clear out this value from the Enter Data tab ONLY if Calculate happens } editor.commit(); //added on 8/3 } private float round(float amount){ return Float.parseFloat(new DecimalFormat("###.##").format(amount)); } 

onDestroy方法:

 @Override public void onDestroy(){ super.onDestroy(); Log.i("OnDestroy", "Logged"); if(nameOfInf != null && nameOfInf.length() > 0) { editor.putString("strInfName", nameOfInf.getText().toString()); } if(tollAmount != null && tollAmount.length() > 0) { editor.putFloat("dblTollAmount", Float.parseFloat(tollAmount.getText().toString())); } editor.commit(); } 

它应该做什么:每当我点击calculate按钮时,应用程序应该采用EditText etToll上的etToll并添加到TextView tvTotalAmount上已有的值,并且每次都会继续这样做。

虽然TextView的原始值是0.00美元,但它只显示0.0美元。 我想在EditText和TextView上显示小数点后的两位数,因为我将使用美元和分数。

我该如何解决我面临的问题?

如果需要完整代码,请告诉我。

在你的代码中使用它

 DecimalFormat form = new DecimalFormat("0.00"); String FormattedText=form.format(your value); 

将它设置为Edittext ..它将工作