Floats auf bestimmte Nachkommastelle runden
Übersicht
BlitzBasic
Codearchiv|
|
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
BlitzBasic
Codearchiv
Powered by phpBB © 2001 - 2006, phpBB Group
