javascript - 如何正确检查整数(未输入小数的值)
问题描述
我正在尝试将数字格式化如下:
如果数字中没有小数,则返回 4 个小数(即 100 将是 100.0000,0 将是 0.0000)如果有小数,则返回到最后一个非 0 小数(即 100.000110000 将是 100.00011 )
下面是我的擦洗功能,我将要格式化的值加载到 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')
推荐阅读
- reactjs - 如何在reactjs中对存储在上下文api中的数据执行搜索?
- reactjs - 从 FlatList 中删除项目失败,并显示“TypeError: (0, _activities.default) is not a function”
- linux - crontab 不会执行 shell 脚本
- assembly - 当前指令旁边的 RIP 相关加载会发生什么?缓存命中?
- r - 如何将轴线更改为箭头
- javascript - 如何计算有多少
- 项目在一个
- 带有条件的标签
- 项目在一个
- php - 在卡片 wordpress 中显示页面
- android - 通过 USB 或网络从 Android 向 PC 发送键盘命令(无需修改内核)
- vba - VBA 替换字符串给出日期
- api - 在 Next.js 中使用输入事件触发器的无服务器