From 2e5d810845a0cb98ccfb9fbf22f63a71f91ed63b Mon Sep 17 00:00:00 2001 From: gaoxq <376340421@qq.com> Date: Sun, 24 Aug 2025 23:07:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E7=A3=81?= =?UTF-8?q?=E7=9B=98=E4=B8=BB=E6=9C=BA=E7=9A=84=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/mini/capi/utils/vF.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/mini/capi/utils/vF.java b/src/main/java/com/mini/capi/utils/vF.java index f4a0bd1..cc59bee 100644 --- a/src/main/java/com/mini/capi/utils/vF.java +++ b/src/main/java/com/mini/capi/utils/vF.java @@ -6,22 +6,24 @@ import java.math.RoundingMode; public class vF { - private static final String[] UNITS = {"B", "K", "M", "G", "T", "P"}; - private static final BigDecimal KB = BigDecimal.valueOf(1024L); + // 注意:起点是 KB,所以后面依次是 M、G、T、P + private static final String[] UNITS = {"K", "M", "G", "T", "P"}; + private static final BigDecimal UNIT = BigDecimal.valueOf(1024L); - public static String format(long bytes) { - if (bytes < 0) { - throw new IllegalArgumentException("字节数不能为负数"); + public static String format(long kBytes) { + if (kBytes < 0) { + throw new IllegalArgumentException("KB 数不能为负数"); } - BigDecimal size = BigDecimal.valueOf(bytes); + BigDecimal size = BigDecimal.valueOf(kBytes); int unitIndex = 0; - while (size.compareTo(KB) >= 0 && unitIndex < UNITS.length - 1) { - size = size.divide(KB, 2, RoundingMode.HALF_UP); + while (size.compareTo(UNIT) >= 0 && unitIndex < UNITS.length - 1) { + size = size.divide(UNIT, 2, RoundingMode.HALF_UP); unitIndex++; } + // 去掉无意义的 0 和小数点 String num = size.stripTrailingZeros().toPlainString(); return num + UNITS[unitIndex]; }