`
-+lizzy+-
  • 浏览: 19691 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

固定长度数字保留小数点两位

阅读更多
修改后的方法 写道
function jsRiskKeyDown(field, maxlimit, format)
{  
    if ( !jsNull(format) )
    {
        if ( jsHangul(field) )    event.returnValue = false;
    }
    if(event.keyCode==110 || event.keyCode==190 || event.keyCode==46)
    {
        if ( field.value=="" ) field.value="0";
        
        if(!isHasComma(field.value))
        {
            field.value = field.value.substring(0,field.value.length);
            event.returnValue = false;
        }
    }
    if(event.keyCode==9)
    {
        if(field.value.charCodeAt((field.value.length-1))==46)
        {
            field.value = field.value.substring(0,field.value.length-1);
        }
        event.returnValue = true;
    }
    else
    {
        switch( format )
        {
            case "SHR" :  
                if ( event.keyCode==110 || event.keyCode==194 || (event.keyCode>=48&&event.keyCode<=57) || (event.keyCode>=96&&event.keyCode<=105)
                || event.keyCode==8 || event.keyCode==9 || event.keyCode==15 || event.keyCode==46 || event.keyCode==33
                || ( event.keyCode>=34&&event.keyCode<=39) || (event.keyCode>=39&&event.keyCode<=42) || event.keyCode==64 || event.keyCode==94
                || event.keyCode==109 || event.keyCode==190 )
                    event.returnValue = true;
                else
                    event.returnValue = false;
                break;
        }
       
        var str=field.value;
        if ( str.length > maxlimit )
        {
            if ( format == "SHR" )
            {
                if (field.value.indexOf(".") > 0) {
                    split1 = field.value.substring(0, field.value.indexOf("."));
                    split2 = ".";
                    split3 = field.value.substr(field.value.indexOf(".")+1);
                    if( event.keyCode == 110 || event.keyCode == 190){
                        event.returnValue = false;
                    }
                }
                else
                {
                    split1 = field.value;
                    split2 = ".";
                    split3 = "";
                }
                while(split1.indexOf("0")==0){
                    split1 = split1.substr(1);
                }
                field.value = split1 + split2 + split3.substring(0,1);
                if(event.keyCode==8)
                {
                    field.value = str;
                }
                if(event.keyCode==110 || event.keyCode==190 || event.keyCode==46)
                {
                    if(str.length==2)
                    {
                        field.value = split1.substring(0,2);
                    }
                }
            }
            else
            {
                field.value = field.value.substring(0, maxlimit);
            }
        }else{
            if ( format == "SHR" )
            {
                if (field.value.indexOf(".") > 0) {
                    split1 = field.value.substring(0, field.value.indexOf("."));
                    split2 = ".";
                    split3 = field.value.substr(field.value.indexOf(".")+1);
                    if( event.keyCode == 110 || event.keyCode == 190){
                        event.returnValue = false;
                    }
                }
                else
                {
                    if(field.value=="" && (event.keyCode == "110" || event.keyCode == "190")){
                        event.returnValue = false;
                    }
                    split1 = field.value;
                    split2 = "";
                    split3 = "";
                    if(split1=="0" && event.keyCode == "96"){
                        event.returnValue = false;
                    }
                    else if(split1=="0" && event.keyCode != "96" && event.keyCode != "110" && event.keyCode != "190"){
                        split1 = split1.substr(1);
                    }
                }
                field.value = split1 + split2 + split3.substring(0,1);
                 //BackSpace BackSpace
                if(event.keyCode==8)
                {
                    field.value = str;
                }
                 //KP_Decimal KP_Decimal ,period colon       ,Delete
                if(event.keyCode==110 || event.keyCode==190 || event.keyCode==46)
                {
                    if(str.length==2)
                    {
                        field.value = split1.substring(0,2);
                    }
                }
            }
        }
    }
}

function jsHangul()
{
    if ( jsNull(arguments[0].value) ) return true;
 for (var i = 0; i < arguments[0].value.length; i++)
    {
        if (arguments[0].value.charCodeAt(i) > 127)
        {
            arguments[0].value = arguments[0].value.substring(0,i);
            return false;
        }
    }
    return true;
}

function isHasComma(str)
{  
    for (var i = 0; i < str.length; i++)
    {
        if (str.charCodeAt(i) ==46 || str.charCodeAt(i) ==190 || str.charCodeAt(i) ==110)
        {
            return false;
        }
    }
    return true;
}

 

分享到:
评论

相关推荐

    Android 限制显示小数点后两位的实现方法

    在Android开发中,有时我们需要对数字进行格式化处理,确保它们只显示小数点后两位。这在显示价格、评分等需要精确到分或者小数点后两位的场景下非常常见。本文将介绍两种实现这一功能的方法。 1. 使用`...

    常用正则表达式

    只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。 只能输入非零的正整数:"^\+?[1-9][0-9]*$"。 只能输入非零的负整数:"^\-[1-9][]0-9"*$。 只能...

    js验证整数加保留小数点的简单实例

    此类验证实例特别适用于需要精确控制数字输入格式的场景,例如金额输入、某些数值度量以及需要固定小数点精度的表单字段。 总结来说,文档提供的这个JavaScript验证实例,是通过动态构建正则表达式、处理边界条件...

    decimal数据类型的小结

    例如,对于`decimal(3,1)`类型,它意味着整个数字长度为3位,其中小数点后占1位。因此: 1. `12.1`是可以正确赋值的,因为总位数未超过3,且小数点后位数为1。 2. `1.234`尝试赋值给`decimal(3,1)`将被截断为`1.2`...

    基于oracle小数点前零丢失的问题分析

    - `.00`:这部分定义了小数部分的宽度,这里是2位,确保小数点后始终有两位数字。 执行上述查询,结果会正确地显示为"0.34",小数点前的0被保留,并且根据格式模型进行四舍五入。 3. 应对策略: - 避免使用CHAR...

    javascript格式化数字

    它能够根据提供的模板,对数字进行精确的格式调整,如添加千位分隔符、固定小数点后的位数等。 #### 函数内部逻辑解析 首先,函数会将输入的数字转换为字符串形式,以便于后续处理。随后,根据`pattern`中是否包含...

    价格限制输入2位小数

    这个场景下,我们需要对`EditText`进行定制,使其能够满足"始终保留两位小数,位数限制为9+2"的需求。 首先,我们需要理解这个需求的具体含义:允许用户输入最多9位整数和2位小数,即总长度不超过11个字符,且小数...

    java数字转金额(任意金额、支持负数、前缀0)

    前导零一般用于确保金额显示为固定长度,例如,如果要求金额至少显示到万元位,那么1会被显示为0001。 为了实现这个功能,我们可以编写一个自定义的`NumberToChineseFormat`函数。以下是一个简单的示例代码: ```...

    验证数字的正则表达式集

    - **说明**:此表达式验证一个最多保留两位小数的浮点数。 - **应用场景**:适用于财务计算等场景。 #### 8. 特定精度的浮点数验证 - **表达式**:`/^[0-9]+(\\.[0-9]{1,3})?$/` - **说明**:此表达式验证一个最多...

    超超超简单实现金额输入的EditText

    首先,我们需要理解这个功能的核心需求:输入时数字自动右对齐,且小数点固定在最后两位。这可以通过监听EditText的输入事件,如添加字符或删除字符,来动态调整文本的显示方式来实现。我们可以创建一个自定义的...

    element-ui表格列金额显示两位小数的方法

    在本文中,我们将深入探讨如何在Element-UI的表格组件中显示金额并确保金额始终保留两位小数。这在金融或者商务类应用中尤为重要,因为精确的数字展示能确保数据的准确性。 首先,我们需要理解Element-UI的`el-...

    验证数字 汉字 的正则表达式

    `{n}`表示重复n次,用来匹配固定长度为n的数字串。 #### 1.3 最小长度的数字 - **表达式**:`^\d{n,}$` - **说明**:该表达式匹配至少包含n个数字的数字串,无上限限制。 #### 1.4 固定范围长度的数字 - **...

    小学数学五年级上册第一单元测试题.doc

    9. **保留小数位数**:9.999保留两位小数是10.00,因为保留小数位数时,通常采用四舍五入的原则,且9.999四舍五入到两位小数是10.00。 10. **判断题与选择题**:这些题目测试了对小数性质的理解,例如整数不一定...

    string.Format 的用法

    - 特点:默认情况下,小数点后保留两位小数,并添加货币符号。 - `{0:C1}`:与`{0:C}`类似,但小数点后只保留一位小数。 - 示例:`string.Format("{0:C1}", 23.15)` 输出为 `$23.2`。 - 特点:小数点后保留一位...

    数值转字符串函数

    5. **小数部分转换**:将浮点数乘以100(保留两位小数),然后通过循环遍历小数部分的每一位,计算对应的数字并转换为字符形式,存入 `str` 数组。 6. **结束标志**:在字符串末尾添加终止符 `'\0'`。 7. **返回结果...

    js实现前面自动补全位数的方法

    在Web开发中,经常需要对输出的数字进行格式化处理,尤其是在需要固定长度数字输出时,比如电话号码、订单编号等场景。JavaScript作为前端开发中不可或缺的一环,提供了多种方式来实现数字前面自动补足0的功能,从而...

    CString.Format格式化输出和ToString()的一些常用用法.pdf

    7. 格式化时可以指定小数点后的位数,例如在货币格式化中"0.00"表示显示两位小数。 8. 可以使用负数索引来表示从后往前数的参数位置,如"{-1}"表示最后一个参数。 9. 当使用ToString()方法进行格式化时,可以指定...

    2 ABAP基础.pdf

    如果没有指定小数位,`P`类型被视为整数,但仍然保留半个字节用于小数点和符号。例如,`p1(16)`定义后,最大值可以是'+9999999999999999999999999999999',最小值是'-9999999999999999999999999999999'。 在ABAP中...

    简单并常用的正则表达式

    6. **小数点后最多保留两位的数字**:“`^[0-9]+\.{0,1}[0-9]{0,2}$`”:此表达式用于验证一个数字是否符合小数点后最多保留两位的要求。 - `^[0-9]+` 表示整数部分,至少有一个数字; - `\.{0,1}` 表示小数点可选...

Global site tag (gtag.js) - Google Analytics