0

在我的 android 应用程序中,我有一个 EditText,用户可以在其中输入一个小数,只要用户想要就可以。它可以是 25、54.77、23.7、7.88 等数字。在同一个活动中,我有一个 textView,它将输入读入 EditText 并显示小数点,但只显示第一个小数点。例如,如果用户输入:25 应该显示为 25,54.77 显示为 54.7,23.7 显示为 23.7,7.88 显示为 7.8。我怎样才能做到这一点?我尝试使用以下代码,但没有奏效:

        NumberFormat df = DecimalFormat.getInstance();
        df.setMinimumFractionDigits(0);
        df.setMaximumFractionDigits(1);

        df.format(EditTextNumber);
4

3 回答 3

1

使用String.format

String result = String.format("%.1f", yourdecimalvalue);

你也可以使用DecimalFormat

 NumberFormat formatter = new DecimalFormat("#0.0");
 String result = formatter.format(yourdeciamlvalue);
于 2012-12-13T13:24:08.423 回答
0

尝试 NumberFormat 而不是 DecimalFormat:

NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(1);
nf.setMaximumFractionDigits(1);
TextView.setText(nf.format(editText.getText()));
于 2012-12-13T13:25:34.043 回答
0

如果您通过编辑文本获取输入,那么您可以使用此代码

String number=input.getText().toString(); //input is ur input edittext
String output=number;
int indexOfDecimal=number.lastIndexOf('.');
if(indexOfDecimal!=-1&&indexOfDecimal<output.length()-1)
    number=output.substring(0, indexOfDecimal+2);  // use number as the output
于 2012-12-13T13:32:28.317 回答