package hw03;

public class Currency {
	long amount; // Always expressed in cents

	public Currency() {
		this.amount=0;
	}
	
	public Currency(long amount) {
		this.amount = amount;
	}
	 
	public Currency(double amt) {
		this.amount = (long)(amt*100.0);
	}
	
	public Currency(int dollars, int cents) {
		this.amount=(dollars*100) + cents;
	}
	
	

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "$"+ amount/100 + "." + String.format("%02d", amount%100);
	}
	
	public Currency add(Currency to) {
		return new Currency(amount+to.amount);
	}
	
	public Currency add(double amt) {
		return this.add(new Currency(amt));
	}
	
	public double getAmount() {
		return amount/100.0;
	}

	public static void main(String[] args) {
		Currency t1 = new Currency(200.236743);
		System.out.println("Currency t1 is " + t1);
		Currency t2 = new Currency(9999_00);
		System.out.println("Currency t2 is " + t2);
		System.out.println("Sum is " + (t1.add(t2)));
		Currency t3 = new Currency(112,91);
		System.out.println("Currency t3 is " + t3);
		System.out.println("t1+t3="+ t1.add(t3));
	}

}
