我希望在十进制之后强制使用两位数格式,但是当我登录时我的应用程序会崩溃。
Log.v("log", new DecimalFormat("00.00").format("62.42"));
答案 0 :(得分:3)
它可以和你一起做。
Log.v("log", new DecimalFormat("00.00").format(62.42));
但是如果您认为必须将String作为输入,则先将其解析为Double,然后执行操作:
Log.v("log", new DecimalFormat("00.00").format(Double.parseDouble("62.42")));
答案 1 :(得分:2)
DecimalFormat
继承Format#format(Object)
,代表DecimalFormat#format(Object, StringBuffer, FieldPosition)
。这是作为
public final StringBuffer format(Object number,
StringBuffer toAppendTo,
FieldPosition pos) {
if (number instanceof Long || number instanceof Integer ||
number instanceof Short || number instanceof Byte ||
number instanceof AtomicInteger ||
number instanceof AtomicLong ||
(number instanceof BigInteger &&
((BigInteger)number).bitLength () < 64)) {
return format(((Number)number).longValue(), toAppendTo, pos);
} else if (number instanceof BigDecimal) {
return format((BigDecimal)number, toAppendTo, pos);
} else if (number instanceof BigInteger) {
return format((BigInteger)number, toAppendTo, pos);
} else if (number instanceof Number) {
return format(((Number)number).doubleValue(), toAppendTo, pos);
} else {
throw new IllegalArgumentException("Cannot format given Object as a Number");
}
}
所以你看,你不能传递String
参数。
字符串62.42
已按您希望的方式格式化。