private static BufferedImage renderNumber(Number number) {
		BufferedImage integer = render(number.getInteger() == null ? "0" : number.getInteger());
		BufferedImage decimal = number.getDecimal() == null ? null : render("." + number.getDecimal());
		
		BufferedImage multiplication = null;
		if(number.getScientificNotationExponent() != null) {
			BufferedImage times10 = render("×10");
			BufferedImage exponent = render(String.valueOf(number.getScientificNotationExponent()), superscriptFont);
			
			multiplication = image(exponent.getWidth() + times10.getWidth(), times10.getHeight());
			Graphics2D g = multiplication.createGraphics();
			render(g, multiplication.getHeight(), times10, 0);
			render(g, multiplication.getHeight(), exponent, times10.getWidth());
		}
		
		ArrayList<BufferedImage> list = new ArrayList<BufferedImage>(3);
		list.add(integer);
		if(decimal != null) list.add(decimal);
		if(multiplication != null) list.add(multiplication);
		return render(list);
	}