2015-10-25 43 views
1

我試圖做一個雙待這種格式00,00字符串格式雙到00,00 - Java的

9,21341> 09,21

10 ,4312> 10,43

1,> 01,01

42543> 42,54

目前我使用的String.Format圓雙

String.format("%s %02.2f - ", example.getName(), example.getDouble()); 

這並不在雙前加上額外的零,如果是小於10

+0

字段寬度是2 - 這是不夠的,數字,點,那點後兩位數字。所以場地大小已經超過了 - 你如何期望它填充到左邊? – RealSkeptic

+0

你是否試圖施放? – phantom

回答

6

Formatter類(是String.format方法的基礎)使用「字段」的概念進行操作。也就是說,每個字段都有一些特定的大小,可以填充。在你的情況下,你可以使用一個像%05.2f這樣的格式,這意味着一個大小爲5的字段,在用零填充到左邊的點後有2個符號。

但是,如果您需要一些細粒度的數字格式,通常您要查找的是DecimalFormat類,該類允許您輕鬆定製如何表示數字。

實施例():

import java.util.*; 
import java.lang.*; 
import java.io.*; 
import java.text.*; 

class Ideone 
{ 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     DecimalFormat decimalFormat = new DecimalFormat("#00.00"); 
     System.out.println(decimalFormat.format(0.99f)); 
     System.out.println(decimalFormat.format(9.99f)); 
     System.out.println(decimalFormat.format(19.99f)); 
     System.out.println(decimalFormat.format(119.99f)); 
    } 
} 

輸出:

00.99 
09.99 
19.99 
119.99 
+0

謝謝!這正是我需要的。我將它轉換爲DecimalFormat。它像一個魅力:) – Kevin