sure?mk-soft hat geschrieben:Pow(...) rechnet auch mit Double
SQL Funktion Round in PB umwandeln
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Muss dir Recht geben. Liegt aber nicht man Pow sondern an das multiplizieren und diffidieren.
Mit der Zweiten Methode komm ein genaueres ergebnis herraus.
Float und Double sind durch ihre Strukture immer ungenau.
Mit der Zweiten Methode komm ein genaueres ergebnis herraus.
Code: Alles auswählen
Procedure.d fctRoundD(varNr.d, varPl.i = 2)
;by Konrad Marfurt + ("" by) Luke Chung + Karl Donaubauer + to PB by mk-soft
Protected result.d
result = Round(varNr * Pow(10.0,varPl), #PB_Round_Nearest) / Pow(10.0,varPl)
ProcedureReturn result
EndProcedure
Procedure.d fctRound(varNr.d, varPl.i = 2)
Protected temp.s
temp = StrD(varNr, varPl)
ProcedureReturn ValD(temp)
EndProcedure
Debug "Round 1"
Debug fctRoundD(12.345678901234567890,2)
Debug fctRoundD(12.345678901234567890,8)
Debug fctRoundD(12.345678901234567890,12)
Debug "Round 2"
Debug fctRound(12.345678901234567890,2)
Debug fctRound(12.345678901234567890,8)
Debug fctRound(12.345678901234567890,12)
Zuletzt geändert von mk-soft am 08.03.2009 16:59, insgesamt 1-mal geändert.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22