金融支付 输入金额 小数点后两位 ,首位输入小数点

封装 如下工具类 在EditText 的addTextChangListener( )方法内的onTextChangge方法内,调用工具内即可。

工具类如下

/**
     * onTextChanged
     * @param sequence  (CharSequenc s
     * @param editText
     */
    public static void formatDot(CharSequence sequence,EditText editText){
        String s = sequence.toString();
        if (s.contains(".")){
            /**
             * 如果小数点位数大于两位 截取后两位
             */
            if (s.length()-1-s.indexOf(".")>2){
                s = s.substring(0, (s.indexOf(".") + 3));
                editText.setText(s);
                editText.setSelection(s.length());
            }
        }
        /**
         * 如果第一个输入为小数点 ,自动补零
         */
        if(s.trim().substring(0).equals(".")){
            s ="0"+s;
            editText.setText(s);
            editText.setSelection(s.length());
        }
        /**
         * 如果第一个第二个均为0
         */
        if(s.startsWith("0")&&s.trim().length()>1){
            if (!s.substring(1,2).equals(".")){
                editText.setText(s.substring(0,1));
                editText.setSelection(1);
                return;
            }
        }
    }

使用方法如下:

“`

amount.addTextChangedListener(new TextWatcher() {

@Override

public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            NumberUtil.formatDot(s,amount);
        }

        @Override
        public void afterTextChanged(Editable edt) {
            String temp = edt.toString();
            int posDot = temp.indexOf(".");
            if (posDot <= 0) return;
            if (temp.length() - posDot - 1 > 2)
            {
                edt.delete(posDot + 3, posDot + 4);
            }
            if (edt.length() >= 1) {
                btnNext.setEnabled(true);
            }
        }
    });```

版权声明:本文为博主原创文章,未经博主允许不得转载。(转载请注明出自 AllenCoder)

时间: 2024-12-28 08:33:21

金融支付 输入金额 小数点后两位 ,首位输入小数点的相关文章

iOS中UITextField输入判断小数点后两位

在输入金额的UITextField中,要给予三个规则的判断 1. 只能输入数字(可以通过设置键盘类型为Decimal Pad) 2. 小数点只能有一个 3. 小数点后最多有两位数字 (可以通过正则表达式或者长度判断) 2. 和3. 的代码 (首先引入UITextFieldDelegate,指定代理为自己) - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacem

WPF TextBox 输入限制小数点后两位

private void TextBox_OnPreviewKeyUp(object sender, KeyEventArgs e) { var textBox = e.OriginalSource as TextBox; if (textBox != null) { if (!string.IsNullOrWhiteSpace(textBox.Text)) { if (textBox.Text.Substring(textBox.Text.Length-1) != ".") { if

限制输入,输入金额 和保留小数点后两位

//判断是否是浮点类型 + (BOOL)isPureFloat:(NSString*)string { NSScanner* scan = [NSScanner scannerWithString:string]; float val; return [scan scanFloat:&val] && [scan isAtEnd];} //在textFiled中限制输入位数 if ([string isEqualToString:@""]) { return YE

控制input标签中只能输入数字以及小数点后两位

js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { obj.value = ""; } if (obj != null) { //检查小数点后是否对于两位http://blog.csdn.net/shanzhizi if (obj.value.toString().split(".").length > 1 &a

Vue 限制input输入 限数字 或 小数点后两位number

Vue 限制input输入 小数点后两位number 参见前辈整理的: https://blog.csdn.net/u013243347/article/details/81181058 Vue 限制input输入数字 不可小数点 <input type="number" placeholder="请输入" v-number-only v-model="SaleQty" v-on:click.stop.prevent> directi

js金额校验,js正则表达式,包含正负,小数点后两位

js金额校验,js正则表达式,包含正负,小数点后两位,js代码如下: function isMoney(s) {        //金额 只允许正数        //var exp = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;         //金额 允许正(+)负数        //var exp = /(^([+-]?)[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|

input输入框只能输入正数和小数(保留小数点后两位)

1.限制只能输入正数和小数保留小数点后两位 1 <input type="number" id="txtNum" /> 2 3 <script type="javascript"> 4 $(function(){ 5 $("#txtNum").keyup(function () { 6 $(this).val(ChangeNumValue($(this).val())); 7 }); 8 9 10 })

js如何实现数字保留小数点后两位小数

js如何实现数字保留小数点后两位小数:小数点后保留两位小数是比较常见的形式,由于比较简单,下面直接给出例子.代码如下: var num=3.1415926; console.log(num.toFixed(2)); toFixed()函数可以参阅javascript的Number对象的toFixed()方法一章节. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9567 更多内容可以参阅:http://www.softwhy.

Java中double类型的数据精确到小数点后两位

Java中double类型的数据精确到小数点后两位 多余位四舍五入,四种方法 一: double f = 111231.5585;BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); 二: new java.text.DecimalFormat("#.00").format(3.1415926) 三: double d = 3.1415926