如图
直接计算已用空间、剩余空间可能出现图片中的数据总和不匹配的问题,考虑了以下方案,感觉还是有机率出现这种问题
方案1
放弃已用空间的精度,从丢失精度的GB转回kb,再用总空间减去丢失精度的已用空间,得出剩余空间,剩余空间再转最大单位
let totalSize = 12345678;
let usedSize = 225654;
let unUsedSize;
let total = kbToOther(totalSize); // * 14.7GB 假设
let usedSizeNoAccuracy = total * 1024 * 1024; // * 存在一位小数 = 15414067.2
unUsedSize = totalSize - usedSizeNoAccuracy; // * 存在一位小数 = xxxxx.8
let unUsed = kbToOther(unUsedSize); // * 保留一位,再次丢失精度 = xxxxx.8/1024/1024 .toFixed(1)
抛弃已用空间的精度来保证总精度,但是由于进制为1024,最后可能会再次丢失剩余空间的精度,仍有一定机率出现相加与总和不一致问题
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…