public class Formatter {
	private String leftStr, rightStr;
	
	public Formatter(double d, int places) {
		int left = (int)d;
		d -= left;
		for (int i = 0; i < places; ++i) {d *= 10;}
		int right = (int)(Math.abs(d));
		
		leftStr = Integer.toString(left);
		rightStr = Integer.toString(right);
		while (rightStr.length() < places) {
			rightStr = "0" + rightStr;
		}
	}
	
	public String toString() {
		return leftStr + "." + rightStr;
	}
	
	public static String format(double d, int places) {
		return new Formatter(d,places).toString();
	}
	
	public static void main(String[] args) {
		System.out.println(Formatter.format(12.123456789, 2));
		System.out.println(Formatter.format(0.123456789, 2));
		System.out.println(Formatter.format(0.123456789, 4));
		System.out.println(Formatter.format(5.08, 2)); 
		System.out.println(Formatter.format(0.08, 2));
		System.out.println(Formatter.format(-11.23, 2));
	}
}
