只读到第1个十进制数字

时间:2012-12-13 13:21:45

标签: android

在我的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);

3 个答案:

答案 0 :(得分:1)

使用String.format

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

您也可以使用DecimalFormat

 NumberFormat formatter = new DecimalFormat("#0.0");
 String result = formatter.format(yourdeciamlvalue);

答案 1 :(得分:0)

尝试使用NumberFormat而不是DecimalFormat:

NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(1);
nf.setMaximumFractionDigits(1);
TextView.setText(nf.format(editText.getText()));

答案 2 :(得分:0)

如果您通过edittext格式化输入,那么您可以使用此代码

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