Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-10-2005, 16:34   #1 (permalink)
o_0
 
Benutzerbild von DoTheSinWave
 
Registriert seit: Apr 2005
Ort: zuhause
Beiträge: 79
besseres Runden

Ich ärgere mich immer wieder damit, dass bei Flash 7 die Math.round Funktion so unflexibel ist. Sie funktioniert zwar genau so, wie es von ihr erwartet wird (auf die nächste Ganzzahl runden), allerdings nervt es ziemlich, wenn man jetzt zb. einen Wert hat, der durch Brüche entstanden ist, also möglicherweise sehr viele Kommastellen hat, sodass Runden für eine halbwegs überschaubare Ausgabe in Textfeldern unbedingt nötig ist, aber 0 Kommastellen wiederum zu ungenau sind.

ich hab mal folgendes probiert:
ActionScript:
  1. function round2(number, kommastellen) {
  2.     return Math.round(number)+"."+number.substr((number.indexOf(".")+1), kommastellen);
  3. }
  4. trace(round2(1.12,2))
mit dem Ergebnis: 1.undefined.
Was ist falsch?
__________________
Ich war traurig weil ich keine Schuhe hatte, bis ich einen sah, der keine Füße hatte
DoTheSinWave ist offline   Mit Zitat antworten
Alt 18-10-2005, 16:41   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Mach's doch so z.B.:
ActionScript:
  1. function round2(nummer, kommastellen) {
  2.     var kommas = Number(1+("000000").substr(-kommastellen));
  3.     return Math.round(nummer*kommas)/kommas;
  4. }
  5. trace(round2(1.15456452, 3));
...gab irgendwo auch nen tread zu Kommastellen. Das hier ist nur so eine Idee...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 18-10-2005, 17:03   #3 (permalink)
o_0
 
Benutzerbild von DoTheSinWave
 
Registriert seit: Apr 2005
Ort: zuhause
Beiträge: 79
hey gar nicht so blöd...
und mir is grad augefallen was ich falsch gemacht habe: einen Substring kann es nur von Strings geben; also:
ActionScript:
  1. function round2(number, kommastellen) {
  2.     string = number.toString();
  3.     return Math.floor(number)+"."+string.substr((string.indexOf(".")+1), kommastellen);
  4. }
Komischerweise werden auch gleich unnötige Nullstellen weggekürzt, ka warum.
__________________
Ich war traurig weil ich keine Schuhe hatte, bis ich einen sah, der keine Füße hatte
DoTheSinWave ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:47 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele