Floats auf bestimmte Nachkommastelle runden
Übersicht

![]() |
d-bugBetreff: Floats auf bestimmte Nachkommastelle runden |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da ich eben in die Verlegenheit kam, daß Blitz meinte 0.2 - 0.1 seien 0.09999 suchte ich verzweifelt an einer RoundTo Funktion. Gibts natürlich nicht ![]() Code: [AUSKLAPPEN] Function RoundTo# (value#,digit)
If digit < Len(Str(value))-Instr(Str(value),".") nextvalue = Int(Mid(Str(value),Instr(Str(value),".")+digit+1,1)) If nextvalue > 4 Return Ceil(value*10^digit)/10^digit Else Return Floor(value*10^digit)/10^digit EndIf Else Return value EndIf End Function evtl. kann es ja jemand gebrauchen, oder hat Verbesserungsvorschläge greetz |
||
- Zuletzt bearbeitet von d-bug am Fr, Jul 29, 2005 17:51, insgesamt einmal bearbeitet
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du möchtest mit der Funktion doch auf eine bestimmte Nachkommastelle runden, oder?
Warum dann nicht einfach: Code: [AUSKLAPPEN] Function RoundTo# (value#,digit)
Return Floor(value*10^digit+0.5)/10^digit End Function Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
- Zuletzt bearbeitet von Xaron am Di, Aug 02, 2005 13:28, insgesamt einmal bearbeitet
Absoluter Beginner |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dein Code rundet aber zB bei 1.09 auf 1.0 und nicht auf 1.1 Also eher FloorTo statt RoundTo | ||
Error Inside! |
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
Absoluter Beginner hat Folgendes geschrieben: Dein Code rundet aber zB bei 1.09 auf 1.0 und nicht auf 1.1 Also eher FloorTo statt RoundTo
Tut er nicht. RoundTo( 1.09, 0 ) liefert: 1 RoundTo( 1.09, 1 ) liefert: 1.1 RoundTo( 1.09, 2 ) liefert: 1.09 Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hui Xaron, auf diese Variante bin ich nicht gekommen ![]() P.S.: Hab diesen Fehler in der oberen Funktion verbessert |
||
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für den Hinweis, d:bug!
Die Int()-Funktion scheint buggy zu sein, ich hab's mal im offiziellen Forum gepostet. Bei allen ungeraden (Vorkomma-)Zahlen arbeitet sie korrekt: Int(1.5) liefert 2 Bei allen geraden (Vorkomma-)Zahlen arbeitet sie nicht korrekt: Int(4.5) liefert 4 Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab meine Funktion oben mal entsprechend berichtigt, d:bug, jetzt bist Du wieder am Zug. ![]() Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
dies war zwar keine wettbewerb, aber o.k., du hast gewonnen ![]() ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group