8 of 11 Better handling of -

Java, 86/122

void d(long a,int b,int c){p(a/b+".");if(a<0^b<0)a=-a;for(;c>0;c--){a=a%b*10;p(a/b);}}<T>void p(T x){System.out.print(x);}

I had to improvise so that a or b could be -2147483648 as positive 32-bit integers only count towards 2147483647, so a beacme a long. There could be a better way of deciding when the result is negative, but I know none.
Why two byte numbers? I needed 86 bytes for the calculation and 36 for the print-helper (System.out.print sucks; generally Java isn't that golfy).

public class Div {

    void d(long a, int b, int c) {
        p(a / b + ".");
        if (a < 0 ^ b < 0) {
            a = -a;
        }
        for (; c > 0; c--) {
            a = a % b * 10;
            p(a / b);
        }
    }

    <T> void p(T x) {
        System.out.print(x);
    }

    public static void main(String[] args) {
        final Div div = new Div();
        div.d(12345, 234, 20);
        div.p('\n');
        div.d(-12345, 234, 20);
        div.p('\n');
        div.d(234, 234, 20);
        div.p('\n');
        div.d(-234, 234, 20);
        div.p('\n');
        div.d(234, 12345, 20);
        div.p('\n');
        div.d(234, -12345, 20);
        div.p('\n');
        div.d(-234, 12345, 20);
        div.p('\n');
        div.d(-234, -12345, 20);
        div.p('\n');
        div.d(-2147483648, 2147483647, 20);
        div.p('\n');
        div.d(2147483647, -2147483648, 20);
        div.p('\n');
    }
}

The method basically exercizes what most of us learned at school.