| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Apr 2005
Beiträge: 9
|
ich bin gerade am verzweifeln, kann sein das der tag so lang war und ich nicht mehr weiss was sache ist .also ich habe einen falschen rundungswert, warum ich es so machen musste, erzähl ich glaube ich erst wenn es wirklich wirklich wichtig für dieses komische verhalten sein sollte. also folgendes problem: ActionScript:
dezimalzahl sollte wieder 122.12 sein, das ist sie auch in diesem beispiel. nur tritt bei mir aufeinmal ein fehler auf sobald die zahl vor dem komme in den tausender bereich geht: ActionScript:
momentan fällt mir nicht ein wieso er das macht, vielleicht kann mir einer zur späten stunde helfen. würd mir schon reichen wenn mir mal einer sagt wie man in flash typen zuweist, weil ich das problem ja auch lösen könnte indem ich mal abfrage ob der wert ein float oder ein integer ist, nur kann man meines wissens nach flash nicht direkte typen zuweisen oder? ok man könnte natürlich auch mit einem split arbeiten und immer die erste zahl aus dem array holen, das mit den arrays wollte ich aber eigentlich vermeiden. entweder stehe ich momentan voll auf den schlauch oder das problem ist wirklich sonderbar. LG vornie |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
dezimalzahl = Math.round(zurundenerwert*100)/100; trace(Math.floor(9.9)); trace(Math.ceil(9.1)); round rundet bei 0.5 floor rundet immer ab ceil immer auf
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #3 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Oh, da bist du auf ein böses Problem gestoßen … Vermutlich liegt das irgendwie daran, dass Flash intern nicht im Dezimalsystem rechnet, dadurch kann es passieren, dass eine 1100.12 * 100 in seinem Zahlensystem aussieht wie 110011.999999999 und deshalb von Math.floor abgeschnitten wird. hier ein kleiner, dreckiger Workaround: ActionScript:
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Apr 2005
Beiträge: 9
|
@ janoscharlippe danke erstmal, ja da ist es mit dem split dieses array wollte ich eigentlich vermeiden, da es mehr schreibarbeit ist ![]() hm, dann muss ich es vielleicht doch machen obwohl es nicht schön ist *g* @hgseib das problem ist er soll immer abrunden, abrunden ist hier die voraussetzung. es können auch zahlen kommen mit 5 oder 6 kommastellen, von diesen kommastellen brauche ich aber nur 2 und zwar immer ab der 3ten stelle abgerundet. ( daher mal 100 und anschliessend wieder mal 0,01 ) mein problem sieht man ja wenn da nur 2 kommastellen vorhanden sind und die zahl dann die tausendergrenze überschreitet. wie schon oben gesagt einfach abfragen ob es ein integer oder ein float ist kann man auch nicht in flash bzw. flash sagen das ist ein float und das ein integer. vielleicht doch noch eine idee ohne split? |
| | |
| | #5 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
binär ist das immer (früher konnte man im maschinencode noch im BCD-code arbeiten, war für kaufleute. da wird eine zahl pro nibble gespeichert). wird eine zahl in ein text umgewandelt, dann kommt gewissermassen auch Math.round zum einsatz. nur halt ein paar kommastellen weiter hinten. dashalb geht hierführ z.b. auch: zurundenerwert = 1222.12959996; zurundenerwert = Math.floor(Math.round(zurundenerwert*1e9)/1e7)/1e2; trace(zurundenerwert); ------------- "..es können auch zahlen kommen.." denn du die zahlen übers internet beziehst, dann sind die zuerst sowieso text, da kannst du auch die funktion von Janoscharlipp nehmen.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (28-09-2005 um 03:16 Uhr) |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Apr 2005
Beiträge: 9
|
hi hgseib, ja also das geht auch, kannste mir das trotzdem nochmal das mit dem "*1e9" usw. erklären. das versteh ich momentan nicht mit den "e". ich werd selber nochmal nachgucken ob ich was darüber finde. aber sicherheitshalber erklärs nochmal . THX vornie |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |