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