O que vc's acham de eu utilizar Trunc() em todos os cáculos do meu sistema?

?

Isso representa perda de precisão. Se seu sistema puder lidar com ela, sem problemas. Outra opção seria usar o tipo int ao invés de double/float.

Caso você esteja lidando com dados financeiros, ou tenha problemas com precisão, considere a possibilidade de usar a classe BigDecimal.

Péssima ideia. Um pouco de estudo sobre calculo numérico lhe diria mais, mas a ideia é que calculos intermédio não podem ser arredondados.

Mas como fazer calculos intermédios sem perda de precisão ?
O jeito fácil mas ñ muito bom é usar BigDecimal. Melhor é usar o padrão Ratio.
Neste padrão todos os numeros são representados por uma razão (uma fração). numeros normais são representados como n /1
Os calculos são feitos com este objeto que nunca executa a operação de divisão.

Por exemplo: 2 /3 + 3/5 = 10/15 + 9/15 = 19/15

Este objeto tem um método que executa a divisão e retorna um BigDecimal. Este método deve ser invocado apenas no fim dos calculos ou para efeitos de apresentação.

Se o valor é dinheiro use o padrão Money em conjunção.