Drill

ProblemsJava › pricing

Split a gross amount into net and VAT

mediumpricingMathJava

Accounting receives invoice totals that already include VAT and needs the two halves separately.

vatSplit(gross: int, ratePercent: int) → Split

Java needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.

Solve it in Python →

Where you start

Split vatSplit(int gross, int ratePercent) {
    
}

Worked examples

CallResult
vatSplit(1200, 20)new Split(1000, 200)
vatSplit(1000, 18)new Split(847, 153)
vatSplit(1180, 18)new Split(1000, 180)
vatSplit(999, 0)new Split(999, 0)

Hint

net = (gross * 100 + half of the divisor) / (100 + rate), using integer division. Then subtract.

Reference solution in Java
Split vatSplit(int gross, int ratePercent) {
    int d = 100 + ratePercent;
    int net = (gross * 100 + d / 2) / d;
    return new Split(net, gross - net);
}

The same problem in another language

More pricing problems in Java