On 01.02.10 17:12, "Michael Kagerbauer" <realbasicli...@kagerbauer.net> wrote:
> Was wäre denn die klügste Variante im Falle einer > Buchhaltungsapplikation? Sämtliche Werte in Cent umrechnen und auch so > in der Datenbank einspeichern? Ja. > Bisher habe ich immer entsprechende Funktionen für die Rundung genutzt, > die Zahlen wären dabei vorher mit 4 Nachkomma-Stellen gespeichert: > > > Function RoundMct(value As Double, decimals As Integer) As Double > Dim sign as Integer = Sign( value ) > > value = Abs( value ) > value = value * Pow( 10, decimals ) > value = value + 0.5 > > value = floor( value ) / Pow( 10, decimals ) > > return sign * value > > End Function Geht so natürlich auch. Du hast allerdings immer das Problem der 'Unschärfe', die Du nicht selber kontrollieren kannst. Ich persönlich finde es angenehmer (und schneller), mit Integern zu arbeiten. Je nachdem, welche Genauigkeit Du benötigst, kannst Du einen 'Genauigkeitsfaktor' bestimmen, zB. 1000 mit dem Du Deine Werte skalierst.... Allerdings bin ich auch kein Spezialist für Buchhaltungs-Software - die haben da vielleicht (vermutlich) noch andere Ansätze. a.