// 封装的一些公共方法


// 保留两位小数  不满两位小数的用0补齐 有千分号
export const handleFormatNumber = (num: any) => {
    // 确保 num 是数字类型
    const parsedNum = Number(num);

    // 如果转换后仍然是 NaN，返回原始值
    if (isNaN(parsedNum)) return "NaN";

    // 如果输入为 0，直接返回 '0.00'
    if (parsedNum === 0) return "0.00";

    // 先处理千分号格式，保留两位小数
    let [integer, decimal] = parsedNum.toFixed(2).split("."); // 保留两位小数

    // 处理千分号
    integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ",");

    // 返回格式化后的数字
    return `${integer}.${decimal}`;
};


// base64转为文件格式
export const base64ToFile = (base64Data: any, filename = "qrcode.png") => {
    const arr = base64Data.split(",");
    const mime = arr[0].match(/:(.*?);/)[1]; // 提取 MIME 类型
    const bstr = atob(arr[1]); // 解码 Base64
    let n = bstr.length;
    const u8arr = new Uint8Array(n);
    while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
    }
    return new File([u8arr], filename, { type: mime });
}
