java - 我正在尝试创建一个将字节转换为人类可读的 JAVA 的程序
问题描述
我正在尝试创建一个将字节转换为人类可读的程序。不幸的是,当我尝试将值格式化为 2 个十进制数字时,我不断收到错误消息。
public class Challenge
{
public static String formatAsMemory(long size) {
long limit = 10 * 1024;
long limit2 = limit * 2 - 1;
if(size < 0) {
size = Math.abs(size);
}
if(size <=1023) {
return String.format("%s%.2f bytes",size);
} else {
size = Math.round((double) size / 1024);
if (size < limit2) {
return String.format("%s%.2f Kb",size);
} else {
size = Math.round((double)size / 1024);
if (size < limit2) {
return String.format("%s%.2f Mb",size);
} else {
size = Math.round((double)size / 1024);
if (size < limit2) {
return String.format("%s%.2f Gb",size);
} else {
size = Math.round((double)size / 1024);
return String.format("%s%.2f Tb",size);
}
}
}
}
}
}
我收到的错误:
Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '%.2f' at java.util.Formatter.format(Unknown Source) at java.util.Formatter.format(Unknown Source) at java.lang.String.format(Unknown Source) at Challenge.formatAsMemory(Challenge.java:12) at Main.main(Main.java:5)
我怎样才能解决这个问题?
解决方案
在您的 return 语句中,return String.format("%s%.2f bytes",size);
这要求两个参数:%s
,它是 String 的任何类型,以及%f
,它是十进制数的浮点数。你提供的论据太少了。如果您打算只使用size
,请记住它是长的,而不是浮点数。
推荐阅读
- python - 无法在 pydev 中为 django 导入behave.given
- python - 无法让两个 Python 记录器同时工作
- gnuplot - 点图的 Gnuplot 点间隔
- javascript - 如何在根目录中获取外部文本文件并使用 javascript 将其附加到 p 元素?
- java - 在netbeans中单击运行时Jpanel不显示
- python - Matplotlib:最后 y 刻度标签不可见,边距为 0
- html - 无法弄清楚如何将文本水平对齐到输入的左侧
- sql - CREATE FUNCTION 后面的代码是一个字符串意味着什么?
- javascript - 仅防止未定义的值
- python - 遍历列表和删除元素的最佳方法是什么?我目前的做法会导致元素被跳过