PDA

Vollständige Version anzeigen : Runden


fismic
09.07.2001, 09:47
Hallo,

in meiner Tabelle sind Zahlen im Single-Format, diese müssten immer ganzzahlig
aufgerundet werden, dh. zB. das 1,237 auf 2 aufgerundet werden soll.

Danke für die Hilfe(n)

Kurt aus Kienitz
09.07.2001, 10:32
Hallo,

Im folgenden Beispiel ist Me.dfGanzAufEingabe ein Textfeld für die Eingabe der Werte.
Me.dfGanzAufAusgabe ein Textfeld für die Ausgabe der gerundeten Werte.

Wichtig ist, die Prüfung auf positive/negative Eingabe, weil sonst in die falsche Richtung gerundet wird.

If Me.dfGanzAufEingabe >= 0 Then

If CInt(Me.dfGanzAufEingabe) < Me.dfGanzAufEingabe Then
Me.dfGanzAufAusgabe = CInt(Me.dfGanzAufEingabe) + 1
Else
Me.dfGanzAufAusgabe = CInt(Me.dfGanzAufEingabe)
End If

Else
If CInt(Me.dfGanzAufEingabe) > Me.dfGanzAufEingabe Then
Me.dfGanzAufAusgabe = CInt(Me.dfGanzAufEingabe) - 1
Else
Me.dfGanzAufAusgabe = CInt(Me.dfGanzAufEingabe)
End If
End If

HTH

WAG
09.07.2001, 11:06
oder so,
Function F_Aufrunden(Zahl As Single) As Single
F_Aufrunden = -Sgn(Zahl) * Int(-Abs(Zahl))
End Function

Dieter

Kurt aus Kienitz
09.07.2001, 11:14
Supie Dieter,

Wird sofort in meine Sammlung aufgenommen :)

wagner-laessig
17.07.2001, 12:49
hallo fismic!

ich hatte in einem ähnlichen falle die ganze schose in der abfrage folgendermaßen gelöst:

aufrundwert:wenn([deinwert]<0;blabla;wenn([deinwert]-int[deinwert]<>0;int[deinwert]+1;[deinwert]))

ich prüfe also erst einmal [deinwert] auf sein vorzeichen, und vergleiche dann [deinwert] mit seiner ganzzahl(int). dann muß ich nur noch entscheiden, wann ich auf den int 1 zurechne oder wann nicht...

blabla: ich weiß ja nicht, was du bei negativen werten machen willst, wahrscheinlich mußt du dann einfach -1 rechnen

ist eine simple lösung, die jederzeit nachvollziehbar bleibt, da ohne code, sondern nur sql

ciao et cu

marcus