/** * 生成范围随机数 * @param {Object} Min * @param {Object} Max */ export function RandomNumBoth(Max, Min = 0) { var Range = Max - Min; var Rand = Math.random(); var num = Min + Math.round(Rand * Range); //四舍五入 return num; } /** * 去除字符串中除了数字和点以外的其他字符 * @param {Object} obj */ export function clearNoNum(obj) { //如果用户第一位输入的是小数点,则重置输入框内容 if (obj.value != "" && obj.value.substr(0, 1) == ".") { obj.value = ""; } obj.value = obj.value.replace(/^0*(0\.|[1-9])/, "$1"); //粘贴不生效 obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的 obj.value = obj.value .replace(".", "$#$") .replace(/\./g, "") .replace("$#$", "."); obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); //只能输入两个小数 if (obj.value.indexOf(".") < 0 && obj.value != "") { //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 if (obj.value.substr(0, 1) == "0" && obj.value.length == 2) { obj.value = obj.value.substr(1, obj.value.length); } } return obj.value; } /** * 保留小数n位,不进行四舍五入 * num你传递过来的数字, * decimal你保留的几位,默认保留小数后两位 */ export function formatDecimal(num, decimal = 2) { num = num.toString(); const index = num.indexOf("."); if (index !== -1) { num = num.substring(0, decimal + index + 1); } else { num = num.substring(0); } //截取后保留两位小数 return parseFloat(num).toFixed(decimal); }