Dopo altri test mi sento di confermare che il calcolo con i float era giusto (anche senza librerie bc o gmp, non facevo certo calcoli molto complessi o con molti decimali), e il problema l'ho risolto evitando di utilizzare number_format e scrivendo una funzione apposita
Edit: però davvero non capisco, sembra che l'errore venga fuori solo con la esatta combinazione dei decimali: 0.715
Ho provato con altre combinazioni (0.815, 0.475, 0.615, etc..) ma nada.

Rispondi quotando