I had some time ago a similar requirement for using BigInteger. It depends on what kind of sacrifice you want to perform:
For test code (without performance requirements), I created a parser:
Parser.execute("20031 + 42*261");
For production code, I tried using a smart builder:
ExpressionBuilder e = new ExpressionBuilder(); e.add(20031,e.mul(42,261)).solve();
But at the end of the day, people usually get used to the dumb code and even prefer it: you do not have operator overloading in jave, so live with it and not try to create a “smart” abstraction.
BigInteger a = new BigInteger(20031); BigInteger b = new BigInteger(42); BigInteger a = new BigInteger(261); BigInteger res = a.plus(b.times(c));
In any case, check everything that works with your team.
EDIT: I did not specifically comment on your example. But by calling 42, FORTY_TWO does not make the code very clear, regardless of your approach. Choosing the right name for a constant is important, making the code clearer:
BigInteger dailyOperatingCost = OFFICE_RENTAL.plus( CONTRACTOR_NUMBER.times(CONTRACTOR_RATE);
source share