2014-01-11 108 views

回答

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已按照您的要求格式化。

3

它應該與你做得很好。

Log.v("log", new DecimalFormat("00.00").format(62.42)); 

但如果你認爲你必須有字符串作爲輸入,然後解析到雙第一,然後執行操作:

Log.v("log", new DecimalFormat("00.00").format(Double.parseDouble("62.42")));