Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-06-2004, 10:13   #1 (permalink)
HTML is not allowed
 
Benutzerbild von Simonline
 
Registriert seit: Nov 2001
Ort: Naked in front of my computer
Beiträge: 68
Zahlen mit substr formatieren

Moin zusamm'

irgendwie fehlt mir grad ein vernünftiger Ansatz:

Ich möchte Zahlen mit Punkten trennen um die Lesbarkeit zu erhöhen also aus einem in Flash errechneten Wert zb. 1000000 ein 1.000.000 machen!

Sollte doch irgendwie mit String.substr() oder lieber String.slice() gehen?

Für Ideen wäre ich sehr dankbar…
Simonline ist offline   Mit Zitat antworten
Alt 14-06-2004, 13:08   #2 (permalink)
jcs
<- links | rechts ->
 
Benutzerbild von jcs
 
Registriert seit: Jul 2002
Beiträge: 127
Hab sowas irgendwann mal gebastelt:

EDIT:
In der ersten Zeile das "kTre nnZeichen" soll "kTrennZeichen" sein, aber das mag das Forum irgendwie nicht... /EDIT


Code:
Number.prototype.format=function(nachKommaStellen,trennZeichen,kTrennZeichen){
 // Zahlen in Strings Wandeln
 var zahl=String(this);
 var kommaStelle=zahl.indexOf(".");
 var vorKommaZahl=zahl.substr(0,kommaStelle);
 var nachKommaZahl=zahl.substr(kommaStelle+1);
 // Nachkommastellen abschneiden oder auffüllen
 if (nachKommaZahl.length>nachKommaStellen){
  nachKommaZahl=nachKommaZahl.substr(0,nachKommaStellen);
 }
 else {
  while(nachKommaZahl.length<nachKommaStellen) nachKommaZahl+="0";
 }
 // Vorkommazahl mit Trennzeichen separieren
 var i=vKL=vorKommaZahl.length;
 while(--i){
  if(!((vKL-i)%3)){
   vorKommaZahl=vorKommaZahl.substr(0,i)+kTrennZeichen+vorKommaZahl.substr(i);
  }
 } return(vorKommaZahl+trennZeichen+nachKommaZahl);
}
Beutzen kannst du es z.B. so:

preis=1142.80;
menge=3;
betrag=preis*menge; // 3428.4
textfeld1.text=betrag.format(2,",",".");
// Ausgabe -> 3.428,40
__________________
Gruß, Jens
-> http://untitled.de

Geändert von jcs (14-06-2004 um 13:12 Uhr)
jcs ist offline   Mit Zitat antworten
Alt 14-06-2004, 13:51   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
solangs nur um die 1000er punkte geht, geht das kürzer
PHP-Code:
n="134536235635"


n=n.split("")
n.reverse()
for(var 
i=3;i<n.length;i+=3){
    
n[i]+="."
}
n.reverse()
n=n.join(""
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 14-06-2004, 14:18   #4 (permalink)
HTML is not allowed
 
Benutzerbild von Simonline
 
Registriert seit: Nov 2001
Ort: Naked in front of my computer
Beiträge: 68
1000 dank für die Lösungen (Ansätze sind ja nunmehr untertrieben )

@Deluxe
Nach genau sowas habe ich gesucht. Das Prinzip ist mir auch verständlich nur leider erhalte dauernd einen Syntax Fehler..?
Simonline ist offline   Mit Zitat antworten
Alt 14-06-2004, 14:23   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
mx2004?
da muß ich passen, werd ich nichmal anrühren dieses "ding"

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 14-06-2004, 14:25   #6 (permalink)
HTML is not allowed
 
Benutzerbild von Simonline
 
Registriert seit: Nov 2001
Ort: Naked in front of my computer
Beiträge: 68
Thumbs down

…besser is das
Simonline ist offline   Mit Zitat antworten
Alt 14-06-2004, 14:27   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
wird sich doch sicherlich jemand erbarmen
wüßte jetzt leider auch nicht was dem nicht paßt über was monkiert er sich denn?

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 14-06-2004, 14:30   #8 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
PHP-Code:
var String (1234567899), = [];
for (var 
n.length0-= 3a.unshift (n.substring ((3), i));
a.join ("."); 
da hätt ich auch noch einen
michael ist offline   Mit Zitat antworten
Alt 14-06-2004, 14:33   #9 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
schwein die idee is besser
und mal schauen ob das mx2004
paßt

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 14-06-2004, 14:34   #10 (permalink)
HTML is not allowed
 
Benutzerbild von Simonline
 
Registriert seit: Nov 2001
Ort: Naked in front of my computer
Beiträge: 68
Auch nett!

Danke habt mir sehr geholfen!!!

@deluxe
Flash behauptet dass '{' unerwartet auftreten würde...?
Hab das ganze Ding nochmal komplett neu aufgebaut und:
TRARA

Nu gehts…?

Nochmal Danke war genau der Input den ich brauchte
Simonline ist offline   Mit Zitat antworten
Alt 14-06-2004, 14:35   #11 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
@Deluxe

deins funktioniert auch bestens in 2004
michael ist offline   Mit Zitat antworten
Alt 16-06-2004, 17:45   #12 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
is nicht der richtige bereich, aber das gleiche thema.

hat jemand fix nen vorschlag, wie man das gleiche problem
in php löst? hatte das schonmal irgendwann gefragt
und beantwortet bekommen, find es aber nicht mehr.

.danke
Dennis ist offline   Mit Zitat antworten
Alt 16-06-2004, 18:44   #13 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
@dennis: schau dir mal die php-funktion number_format() an
michael ist offline   Mit Zitat antworten
Alt 16-06-2004, 19:14   #14 (permalink)
Taufrisch
 
Benutzerbild von Dennis
 
Registriert seit: Jun 2001
Ort: Berlin
Beiträge: 2.042
super, danke. genau das wars. was man nicht
im kopf hat ...
Dennis ist offline   Mit Zitat antworten
Alt 16-07-2004, 09:47   #15 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 1
Zitat:
Zitat von jcs
Hab sowas irgendwann mal gebastelt:

EDIT:
In der ersten Zeile das "kTre nnZeichen" soll "kTrennZeichen" sein, aber das mag das Forum irgendwie nicht... /EDIT


Code:
Number.prototype.format=function(nachKommaStellen,trennZeichen,kTrennZeichen){
 // Zahlen in Strings Wandeln
 var zahl=String(this);
 var kommaStelle=zahl.indexOf(".");
 var vorKommaZahl=zahl.substr(0,kommaStelle);
 var nachKommaZahl=zahl.substr(kommaStelle+1);
 // Nachkommastellen abschneiden oder auffüllen
 if (nachKommaZahl.length>nachKommaStellen){
  nachKommaZahl=nachKommaZahl.substr(0,nachKommaStellen);
 }
 else {
  while(nachKommaZahl.length<nachKommaStellen) nachKommaZahl+="0";
 }
 // Vorkommazahl mit Trennzeichen separieren
 var i=vKL=vorKommaZahl.length;
 while(--i){
  if(!((vKL-i)%3)){
   vorKommaZahl=vorKommaZahl.substr(0,i)+kTrennZeichen+vorKommaZahl.substr(i);
  }
 } return(vorKommaZahl+trennZeichen+nachKommaZahl);
}
Beutzen kannst du es z.B. so:

preis=1142.80;
menge=3;
betrag=preis*menge; // 3428.4
textfeld1.text=betrag.format(2,",",".");
// Ausgabe -> 3.428,40
als kompletter flashneuling hat mir diese funktion sehr weitergeholfen.

ich hab aber dann auch gemerkt, dass die funktion fehlerhaft arbeitet, wenn man sie auf eine zahl ohne nachkommastellen anwendet. ich habe sie daher etwas angepasst. ich hoffe das hilft dem einen oder anderen vielleicht weiter, so wie mir.
Code:
Number.prototype.format=function(nachKommaStellen, trennZeichen, kTrennZeichen){
 // Zahlen in Strings Wandeln
 var zahl=String(this);
 var kommaStelle=zahl.indexOf(".");
 if (kommaStelle != -1){
  var vorKommaZahl=zahl.substr(0,kommaStelle);
  var nachKommaZahl=zahl.substr(kommaStelle+1);
  // Nachkommastellen abschneiden oder auffüllen
  if (nachKommaZahl.length>nachKommaStellen){
   nachKommaZahl=nachKommaZahl.substr(0,nachKommaStellen);
  }
  else {
   while(nachKommaZahl.length<nachKommaStellen) nachKommaZahl+="0";
  }
 }
 else {
  var vorKommaZahl=zahl;
  while(nachKommaZahl.length<nachKommaStellen) nachKommaZahl+="0";
 }
 // Vorkommazahl mit Trennzeichen separieren
 var i=vKL=vorKommaZahl.length;
 while(--i){
  if(!((vKL-i)%3)){
   vorKommaZahl=vorKommaZahl.substr(0,i)+kTrennZeichen+vorKommaZahl.substr(i);
  }
 } return(vorKommaZahl+trennZeichen+nachKommaZahl);
}
genial 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 14:18 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele