java.util.MissingFormatArgumentException

今天寫了一段測試代碼,以下:java

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<StatisticsResultData> resultList = Utils
					.listStatisticResultDatas(beginTime, endTime);
			List<StatisticsResultData> 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();
		}
	}

	

}

結果測試時報錯以下:apache

原始數據量=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);code

另外,若是想在輸出百分數時直接在後面加上%,如f.format(",比例= %.2f %" ,(double) resultList.size() / rawlist.size() * 100);會報錯:orm

原始數據量=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("%"); ci

相關文章
相關標籤/搜索