我正在尝试限制我的EditText作为输入。我希望它最多占用21 million (20,999,999.99999999)
。是否有可能实现>如果,那我该怎么办呢?我尝试将InputFilter
与模式[0-9]{0,9}+((\.[0-9]{0,7})?)||(\.)?
一起使用。告诉我该怎么做。
答案 0 :(得分:1)
好吧,我也读了弗朗切斯科的回答和你的评论。如果您需要检查小数点,可以尝试以下方法。
EditText someText = findViewById(R.id.someValueInputHi);
String paw = someText.getText().toString().replaceAll("\\s+", ""); //rem unusual spaces
Double someInput = Double.parseDouble(paw);
if (someInput < 5.3465726543d | someInput > 3.7834657836d) {
//Ok now
} else {
//Oops, no man
}
您只接受 5.3465726543 和 3.7834657836 之间的值。
为什么加倍?
顾名思义,double的精度是float的2倍。通常, double具有 15 精度的十进制数字,而float具有7。
修改强> 弗朗西斯科的答案现已删除。