Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-04-2005, 14:10   #1 (permalink)
TOE
Schniddlebrimpf
 
Benutzerbild von TOE
 
Registriert seit: Jun 2004
Ort: Lake Constance
Beiträge: 37
Anzeige von Tausendertrennzeichen und Rundung bei X.00 Wert

Hi Leute,

hab da grad ein kleines Problem. Baue nen Onlineshop und im Warenkorb sollen die Bruttopreise ausgeworfen werden. Soweit so gut. Script funzt auch prächtig.

Nur ein kleines Problem habe ich. Ein dyn. Textfeld gibt den jeweils aktuellen Kaufpreis wieder. Allerdings ohne das Tausendertrennzeichen (1.000) und ohne die beiden Dezimalstellen (1.000.00). Flash rundet hier einfach schön ab.

Frage ist: mit welchem Script kann ich a) die Tausendertrennzeichen wiedergeben lassen und b) wie spuck ich die 2 Dezistellen aus, auch wenn die den Wert x.00 haben?
__________________
"Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we." —George W. "Dumbya" Bush, Washington, D.C., Aug. 5, 2004

Error in Earth.sys - reboot Universe.exe? [Y|N]
TOE ist offline   Mit Zitat antworten
Alt 03-04-2005, 14:22   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Hast schon mal in die Suche geschaut hier? Da gabs schon einige Ansätze und Lösungen dazu...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 03-04-2005, 14:30   #3 (permalink)
TOE
Schniddlebrimpf
 
Benutzerbild von TOE
 
Registriert seit: Jun 2004
Ort: Lake Constance
Beiträge: 37
Ja hab ich. Hab aber nix gefunden, was mir das Problem mit dem 0 Wert der Dezimalstellen löst. Tausendertrennzeichen das gleiche. Vielleicht bin ich zu doof mit der Suche umzugehen, aber hab mir alle Threads durchgelesen, wobei es meistens um DeziStellenabrundung von 10 oder mehr Dezistellen geht.

Muss ich in ein String umwandeln oder kann ich das Prob auch mathematisch lösen? Also mit Math. Auch O'Reilly (Handbuch) gibt mir auf die Schnelle keine Antwort. Math.round ist ja kein Thema. Aber nur, wenn hinter dem Komma keine 0-Werte stehen. Also, aus Ganzzahl ne Dezimalzahl inklusive Tausendertrennzeichen machen. Please help!

Ich mein zur Not setze ich + ".00" dahinter. auch kein Ding. Aber die Tausendertrennzeichen machen mir Sorgen. Muss ich den umständlichen Weg gehen und bei der Definition vom Preis einen Stringwert setzen bzw. den dann später im Script in eine Zahl umwandeln? Und wieder andersrum zur Ausgabe im Textfeld? Sprich:

preis = "1.500.00";
...
Number(preis);
[Berechnungen]
...
String(preis)
[Ausgabe im TxT.Feld]

^^ wenn das überhaupt funZt.
__________________
"Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we." —George W. "Dumbya" Bush, Washington, D.C., Aug. 5, 2004

Error in Earth.sys - reboot Universe.exe? [Y|N]

Geändert von TOE (03-04-2005 um 14:57 Uhr)
TOE ist offline   Mit Zitat antworten
Alt 03-04-2005, 14:51   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Das geht bestimmt auch wieder einfacher. In meinem Beispiel auch nur bis 999.999,99...

PHP-Code:
var Zahl 111502.5;
Zahl1 Zahl.toString();
Zahl2 Zahl1.split(".");
if (
Zahl2[0]>=1000) {
    
Zahl2[0] = Zahl2[0].slice(0Zahl2[0].length-3)+"."+Zahl2[0].slice(-3);
}
if (
Zahl2[1] == undefined) {
    
Zahl2[1] = "00";
}
if (
Zahl2[1].length == 1) {
    
Zahl2[1] += "0";
}
Zahl2.toString();
trace(Zahl2); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 03-04-2005, 15:15   #5 (permalink)
TOE
Schniddlebrimpf
 
Benutzerbild von TOE
 
Registriert seit: Jun 2004
Ort: Lake Constance
Beiträge: 37
Hey Super Fragger. Genau das hab ich gesucht. Ich würd es gern richtig verstehen. Würde Dir es etwas ausmachen, Deinen Code mit mir Durchzugehen?

Verstehe das so:


var Zahl = 111502.5; <---- Ist klar

Zahl1 = Zahl.toString(); <---- Konvertierung zum String
Zahl2 = Zahl1.split("."); <---- Zerlegt ZAHL ab dem Komma in 2 Strings. Wert von Zahl(2)[0] ist nun "111502" und Zahl(2)[1] ist 5

if (Zahl2[0]>=1000) {
Zahl2[0] = Zahl2[0].slice(0, Zahl2[0].length-3)+"."+Zahl2[0].slice(-3); <---- da hakts etwas. Geht aber um Trennzeichen der Tausender
}
if (Zahl2[1] == undefined) {
Zahl2[1] = "00"; <---- wenn Zahl(2) keinen Wert hat, dann wird "00" hinzugefügt. Dezistellen
}
if (Zahl2[1].length == 1) {
Zahl2[1] += "0"; <---- Hat Zahl(2)[1] nur eine Stelle, dann setz noch ne "0" ran.
}
Zahl2.toString(); <---- Rückkonvertierung
trace(Zahl2);
__________________
"Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we." —George W. "Dumbya" Bush, Washington, D.C., Aug. 5, 2004

Error in Earth.sys - reboot Universe.exe? [Y|N]

Geändert von TOE (03-04-2005 um 15:16 Uhr)
TOE ist offline   Mit Zitat antworten
Alt 03-04-2005, 15:24   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hast du dir doch schon selber erklärt. Wird zwar nicht in 2 Strings sondern eigentlich in 1 Array zerlegt, aber der Rest stimmt so schon.

PHP-Code:
Zahl2[0] = Zahl2[0].slice(0Zahl2[0].length-3// ...Zahlen vor dem zu setzenden tausender Punkt
+"." // ...Punkt dazwischen packen
+Zahl2[0].slice(-3); //... und die letzten 3 Stellen dranhängen. 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 03-04-2005, 15:26   #7 (permalink)
TOE
Schniddlebrimpf
 
Benutzerbild von TOE
 
Registriert seit: Jun 2004
Ort: Lake Constance
Beiträge: 37
Ok. Alles klaro. Werd mir die slice() und split() Funktionen nochmal im MX Handbuch von O'Reilly anschauen. Danke Dir und nen schönen Sonntag noch.
__________________
"Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we." —George W. "Dumbya" Bush, Washington, D.C., Aug. 5, 2004

Error in Earth.sys - reboot Universe.exe? [Y|N]
TOE ist offline   Mit Zitat antworten
Alt 06-04-2005, 11:14   #8 (permalink)
TOE
Schniddlebrimpf
 
Benutzerbild von TOE
 
Registriert seit: Jun 2004
Ort: Lake Constance
Beiträge: 37
Ich nochmal. Habe eben versucht, den Code in eine Funktion zu setzen. Als Ergebnis erhalte ich leider immer undefined. Woran liegt das?

PHP-Code:
Eingangszahl 2000.00;   // Wert ergibt sich eigentlich durch Button

function zahlenformat() {
   
Zahl1 Eingangszahl.toString();
   
Zahl2 Eingangszahl.split(".");

   if (
Zahl2[0]>=1000) {
       
Zahl2[0] = Zahl2[0].slice(0Zahl2[0].length-3)+"."+Zahl2[0].slice(-3);
   }

   if (
Zahl2[1] == undefined) {
    
Zahl2[1] = "00";
   }

   if (
Zahl2[1].length == 1) {
    
Zahl2[1] += "0";
   }

Ausgangszahl Zahl2.toString();
return 
Ausgangszahl;
}
Ergebnis = ("Ergebnis: " Ausgangszahl);
trace(Ergebnis); 

Mag mir jemand nen Tipp geben bitte?
__________________
"Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we." —George W. "Dumbya" Bush, Washington, D.C., Aug. 5, 2004

Error in Earth.sys - reboot Universe.exe? [Y|N]
TOE ist offline   Mit Zitat antworten
Alt 06-04-2005, 12:57   #9 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Die "Ausgangszahl" is an der Stelle nicht bekannt... wenn die Funktion schon was return't, dann das verwenden:
ActionScript:
  1. Ergebnis = ("Ergebnis: " + zahlenformat ());
  2. trace (Ergebnis);
Hier übrigens noch ne andere Variante von mir, die beliebige Zahlen im Format XXX.XXX.XXX,XX mit Währung formatiert:
ActionScript:
  1. Number.prototype.moneyFormat = function (pCurrency) {
  2.     var firstPart = String (this).split (".")[0];
  3.     var secondPart = String (this).split (".")[1];
  4.     while (secondPart.length < 2) {
  5.         secondPart += "0";
  6.     }
  7.     if (secondPart == undefined) {
  8.         secondPart = "00";
  9.     }
  10.     var tmpArr = firstPart.split ("");
  11.     for (var i in tmpArr) {
  12.         if ((tmpArr.length - i) % 4 == 3 && i > 0) {
  13.             tmpArr.splice (i, 0, ".");
  14.         }
  15.     }
  16.     return tmpArr.join ("") + "," + secondPart + " " + pCurrency;
  17. }
  18. // Aufruf:
  19. var n = 1613.2;
  20. trace (n.moneyFormat ("EUR"));
  21. // --> liefert: 1.613,20 EUR
  22.  
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 06-04-2005, 17:28   #10 (permalink)
TOE
Schniddlebrimpf
 
Benutzerbild von TOE
 
Registriert seit: Jun 2004
Ort: Lake Constance
Beiträge: 37
Ahhh. Jetzt. Ja. Eine Insel. Danke Dir.

Bin eben auf nochwas gestossen. Kann mir keinen rechten Reim drauf machen. Ziel ist es, über einen Button zwischen den Zustände EIN und AUS zu wechseln. FunZt aber net so recht. Ausschalten geht, nur das Einschalten nicht mehr. Warum?

Habs erst mit der switch Anweisung probiert. Ging net. Dann auf die alte Tour. Zwar nicht schön, aber ... Geht auch net. Dabei ist das doch so simpel. Eigentlich. Mach ich nen Denkfehler? Liegt übrigens auf der Hauptzeitleiste. Soll ich nen MC draus machen? Hmm. mein_mc ist übrigens ein Häkchen.

PHP-Code:
on (release) {

if (
this.mein_mc._visible=false) { 
bedingung true
this.mein_mc._visible=true
}
if (
this.mein_mc._visible=true) { 
bedingung false
this.mein_mc._visible=false;
}

__________________
"Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we." —George W. "Dumbya" Bush, Washington, D.C., Aug. 5, 2004

Error in Earth.sys - reboot Universe.exe? [Y|N]

Geändert von TOE (06-04-2005 um 17:40 Uhr)
TOE 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 09:56 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele