package rpn.fc;

import rpn.Calculator;
import rpn.basic.Item;
import rpn.basic.DoubleValue;

public class FracItem extends Item implements DoubleValue {
	public fraction f;
	
	// assumes d != 0?
	public FracItem(Calculator ca, int n, int d) {
		super(ca);
		f = new fraction(n, d);
		f.reduce();
	}
	
	public FracItem(Calculator ca, fraction f) {
		super(ca);
		this.f = f;
	}
	
	public void reduce() {
		fraction.reduce(f);
	}
	
	public long floor() {
		long x = f.n/f.d;
		if (x < 0) x -= 1;
		return(x);
	}
	
	public double doubleValue() {
		return((double) f.n/(double) f.d);
	}
	
	public String toString() {
		return(f.toString());
	}
}