Ich habe vor etlichen Jahren einen fiesen Bug in einer Abrechnungssoftware gehabt, aus ähnlichen Gründen.
Ich haben dann die Konstante 0.5 auf 0.5+1E-15 (also ein winzigkleinwenigmehr als 0.5) geändert. (Ich glaube zumindest, das es 1E-15 war, keine Ahnung)
Ich will doch einfach nur einen "normal" gerundeten Wert haben.
Na ja, so (aber das weißt Du ja):
Trunc(unroundedValue/Granularity+0.5+1E-15)*Granularity