Devo moltiplicare un numero per una frazione.

Il numero è senza segno a 64 bit.
La frazione è composta da due interi senza segno a 64 bit. Il numeratore è sempre minore o uguale del denominatore.

Normalmente farei:


(n * numeratore) / denominatore


Ma il prodotto tra numeratore e n va quasi sempre in overflow sbagliando il calcolo.

Non posso trasformare i due numeri in double perchè la sua mantissa è di 52 bit e quindi perdo precisione.

Senza dover implementare numeri a 128 bit, per questo specifico calcolo potrei usare qualche trucchetto secondo voi?