import java.util.list报错_java.util.MissingFormatArgumentException

今天写了一段测试代码,如下:

package socStatistics;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Formatter;

import java.util.List;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Properties;

import org.apache.ibatis.io.Resources;

import socStatistics.entity.StatisticsResultData;

public class StatisticsMain {

public static void main(String[] args) {

// 最终

Properties prop;

try {

prop = Resources.getResourceAsProperties("param.properties");

String beginTime = (String) prop.get("beginTime");

String endTime = (String) prop.get("endTime");

List resultList = Utils

.listStatisticResultDatas(beginTime, endTime);

List rawlist = Utils.listStatisticResultDatas("0000",

"2459");

System.out.print("原始数据量=" + rawlist.size() + ", 符合" + beginTime + "-"

+ endTime + "之间的数据量=" + resultList.size());

Formatter f = new Formatter(System.out);

f.format(",比例= %.2f" + (double) resultList.size() / rawlist.size() * 100);

System.out.println("%");

} catch (IOException e) {

e.printStackTrace();

}

}

}

结果测试时报错如下:

原始数据量=1935, 符合0830-1730之间的数据量=1852,比例= 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 socStatistics.StatisticsMain.main(StatisticsMain.java:31)

按照提示,31行发生错误,原来是

f.format(",比例= %.2f" + (double) resultList.size() / rawlist.size() * 100);这里的+,应该是逗号。即改成f.format(",比例= %.2f" ,(double) resultList.size() / rawlist.size() * 100);

另外,如果想在输出百分数时直接在后面加上%,如f.format(",比例= %.2f %" ,(double) resultList.size() / rawlist.size() * 100);会报错:

原始数据量=1935, 符合0830-1730之间的数据量=1852Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '%'

at java.util.Formatter.checkText(Unknown Source)

at java.util.Formatter.parse(Unknown Source)

at java.util.Formatter.format(Unknown Source)

at java.util.Formatter.format(Unknown Source)

at socStatistics.StatisticsMain.main(StatisticsMain.java:31)

可以另起一行,System.out.println("%");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值