首先在xml 中把inputType设置为numberDecimal (包含小数点)然后在把maxLeng设置为16 package com.example.numbertest; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.widget.EditText; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText editText=(EditText) this.findViewById(R.id.et); editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { String str=s.toString(); //如果字符串中有小数点,就对小数点进行分割, if(str.contains(".")){ String[] strArr = str.split("\."); //判断小数点后面的位数,如果超过两位就删除后面的数据,不让输入 if(strArr.length>1 && strArr[1].length()>2){ s.delete(str.length()-1, str.length()); } } //如果不包含小数点,只能输入13整数,如果包含小数点就按照小数点的进行处理 if(str.length()>13 && !str.contains(".")){ s.delete(str.length()-1, str.length()); } } }); } }