繁体   English   中英

如何正确检查整数(未输入小数的值)

[英]How to properly check for whole numbers (value with no decimals being entered in)

我正在尝试按如下方式格式化数字:
如果数字中没有小数,则返回 4 个小数(即 100 为 100.0000,0 为 0.0000) 如果有小数,则返回最后一个非 0 小数(即 100.000110000 为 100.00011)

下面是我的擦洗 function 我将要格式化的值加载到 domtemp.value

检查 0 位小数(或输入的整数)时,问题出在下面的“else if”中。 我从来没有到达那里,因为无论我是否通过 100 或 100.0011,结果似乎总是 0。 任何想法我在检查整数时可能做错了什么?

function scrubAsFound() {
    var i;
    var length = 4;
        
    for (i = 1; i <= length; i++) {
        domtemp = document.querySelector('#equipment_asfound' + i);
       
        
        // Check for empty values 
        if (isNaN(domtemp.value) || (!domtemp.value || 0 === domtemp.value.length))
        { 
            domtemp.value = 0.0000;
            domtemp.value = Number(domtemp.value).toFixed(4);
        }
        else if (Number(domtemp.value) % 1 != 0)
        { 
             domtemp.value = Number(domtemp.value).toFixed(4);
        }
        else 
        { 
            domtemp.value =  parseFloat(formatAsFound(domtemp.value));
        }
        
    }
}

 function formatNumber(val) { let numberVal = Number(val) if (isNaN(numberVal)) { numberVal = 0 } const intVal = parseInt(numberVal) return intVal + '.' + (numberVal + '').substr((intVal + '').length + 1).padEnd(4, '0') } console.log(formatNumber('abc') === '0.0000') console.log(formatNumber('') === '0.0000') console.log(formatNumber(0) === '0.0000') console.log(formatNumber(2) === '2.0000') console.log(formatNumber(2.1) === '2.1000') console.log(formatNumber(2.00011) === '2.00011')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM