java中printStream中的printf问题

图片说明
前一个存放值只支持float类型么?

http://blog.csdn.net/u010360044/article/details/46741241

是的~

使用%f的时候对应的参数必须是floatdoubleBigDecimalnull也可以。

以下代码来自java.util.Formatter的内部类FormatSpecifier的方法printFloat(Object arg, Locale l)

private void printFloat(Object arg, Locale l) throws IOException {
    if (arg == null)
        print("null");
    else if (arg instanceof Float)
        print(((Float)arg).floatValue(), l);
    else if (arg instanceof Double)
        print(((Double)arg).doubleValue(), l);
    else if (arg instanceof BigDecimal)
        print(((BigDecimal)arg), l);
    else
        failConversion(c, arg);
}