diff --git a/src/main/java/com/mini/capi/biz/domain/DiskMount.java b/src/main/java/com/mini/capi/biz/domain/DiskMount.java index ae1ba42..f0eb5cf 100644 --- a/src/main/java/com/mini/capi/biz/domain/DiskMount.java +++ b/src/main/java/com/mini/capi/biz/domain/DiskMount.java @@ -41,19 +41,19 @@ public class DiskMount implements Serializable { * 总容量 */ @TableField("size_kb") - private BigDecimal sizeKb; + private String sizeKb; /** * 已用容量 */ @TableField("used_kb") - private BigDecimal usedKb; + private String usedKb; /** * 可用容量 */ @TableField("avail_kb") - private BigDecimal availKb; + private String availKb; /** * 挂载路径 diff --git a/src/main/java/com/mini/capi/utils/HostInfo.java b/src/main/java/com/mini/capi/utils/HostInfo.java index 0f7fb72..8b87b76 100644 --- a/src/main/java/com/mini/capi/utils/HostInfo.java +++ b/src/main/java/com/mini/capi/utils/HostInfo.java @@ -103,9 +103,9 @@ public final class HostInfo { if (arr.length < 6) continue; // 跳过异常行 DiskMount d = new DiskMount(); d.setDiskFs(arr[0]); - d.setSizeKb(new BigDecimal(arr[1])); - d.setUsedKb(new BigDecimal(arr[2])); - d.setAvailKb(new BigDecimal(arr[3])); + d.setSizeKb(vF.format(Long.parseLong(arr[1]))); + d.setUsedKb(vF.format(Long.parseLong(arr[2]))); + d.setAvailKb(vF.format(Long.parseLong(arr[3]))); d.setMountPoint(arr[5]); list.add(d); } diff --git a/src/main/java/com/mini/capi/utils/vF.java b/src/main/java/com/mini/capi/utils/vF.java new file mode 100644 index 0000000..4eacd6e --- /dev/null +++ b/src/main/java/com/mini/capi/utils/vF.java @@ -0,0 +1,28 @@ +package com.mini.capi.utils; + +public class vF { + + + + private static final String[] UNITS = {"B", "K", "M", "G", "T", "P"}; + + + public static String format(long bytes) { + if (bytes < 0) { + throw new IllegalArgumentException("字节数不能为负数"); + } + + int unitIndex = 0; + double size = bytes; + + while (size >= 1024 && unitIndex < UNITS.length - 1) { + size /= 1024; + unitIndex++; + } + + // 保留最多一位小数,去掉多余的 .0 + return String.format("%.1f", size).replace(".0", "") + UNITS[unitIndex]; + } + + +}