Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-12-2004, 14:07   #1 (permalink)
Thingamajig Studios
 
Benutzerbild von Argh
 
Registriert seit: May 2003
Ort: Recklinghausen
Beiträge: 293
Number() Problem

Hallo miteinander!

Ich möchte einen String gerne in eine Zahl konvertieren..

Nun sieht mein String folgendermassen aus:

"13,90"

Es handelt sich um einen Preis.. und Number("13,90") gibt mir auf Grund des Kommas ein NaN zurück..

Was kann ich machen? Mit einem Punkt als Seperator möchte ich nicht arbeiten, da es sich ja um eine deutsche Preiseinheit handelt...

Edit:
Nun stelle ich gerade fest, dass es generell ein Problem ist mit solchen Werten später zu rechnen...

Sprich: 12,90 + 2,90 ist nicht gleich 12.90 + 2.90
Wie kann man das umgehen?? Ich brauche schließlich die Werte mit den Kommatas

Geändert von Argh (28-12-2004 um 14:13 Uhr)
Argh ist offline   Mit Zitat antworten
Alt 28-12-2004, 14:16   #2 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
dann ersetzte das komma vor dem rechnen mit nem punkt. is nunmal so.

PHP-Code:
//--    Replace-Methode für Strings.
    
String.prototype.replace = function(suchstrersetzstr) {
        return 
this.split(suchstr).join(ersetzstr);
    } 
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 28-12-2004, 14:16   #3 (permalink)
Augenmensch
 
Benutzerbild von pito
 
Registriert seit: Aug 2004
Ort: Gelsenkirchen
Beiträge: 558
Hiermit läßt sich das Komma per Script zum Punkt machen. Ist aber vermutlich nur ein kleiner Teil des Problems.
PHP-Code:
wert "13,90";
for (
0<= wert.lengthi++) {
    if (
wert.substr (i1) == ",") {
        
wert wert.substr (01) + "." wert.substring (1wert.length);
    }

pito ist offline   Mit Zitat antworten
Alt 28-12-2004, 14:17   #4 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
du hast keine andere wahl, als mit dem string ( '12,90' zu arbeiten bei der ausgabe als deutsche preissignierung und es intern wieder in ne number zu konvertieren.
du kannst allerdings intern number beibehalten zum weiter berechnen etc...und das in ner var ablegen, auf die du später wieder zugreifst.
und nach 'aussen' hin, also in nem textfeld machst du eben nen string draus.

no other way for that...


also ein 12,90 (string) ist einfach mit

ActionScript:
  1. var numWert = eval('12,90');
  2. trace(numWert);

in einen typ Number konvertiert.

beim konvertieren einer zahl in einen string ( für ne deutsche preisausgabe) ist es ein bißchen schwieriger, aber da gibt es hier bereits zig scripte im forum dazu...
such mal nach :
konvertieren


oder wart mal...ich kann´s dir auch schnell reintippen...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 28-12-2004, 14:18   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hmmm, ja. Oder halt so:

String to Number:

PHP-Code:
var zahl "13,90";
zahl = (zahl.split(",").join("."));
zahl Number(zahl
Number to String:

PHP-Code:
var Zahl 12.5;
Zahl1 Zahl.toString();
Zahl2 Zahl1.split(".");
if (
Zahl2[1] == undefined) {
    
Zahl2[1] = "00";
}
if (
Zahl2[1].length == 1) {
    
Zahl2[1] += "0";

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 28-12-2004, 14:21   #6 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Oder so...?
ActionScript:
  1. String.prototype.toNum = function() {
  2.   if(this.indexOf(",") != -1) {
  3.     return Number(this.split(",").join("."));
  4.   } else {
  5.     return Number(this);
  6.   }
  7. };
  8. // bsp.
  9. var s = "23,99";
  10. trace(s.toNum() + 12);
Natürlich auch nicht ganz sauber, man sollte schon aufpassen, womit man das Ding füttert...

[edit]
oh, da waren ja schon einige am Werk hier... Mensch, der kelor... wink!
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (28-12-2004 um 14:23 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 28-12-2004, 14:22   #7 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ActionScript:
  1. Object.prototype.addzero = function (args){
  2.     var v, t;
  3.     t = new String(this[args]).split('.');
  4.     if(t[1].length >1) return this[args];
  5.     Math.round(this[args]) != this[args] ? this[args] +="0" : this[args] +=".00";
  6.     return this[args];
  7. }
  8.  
  9. var a = 19.5;
  10. var b = 23.7;
  11. var c = 18;
  12. var d = 21.03;
  13.  
  14. trace(this.addzero('a'));
  15. trace(this.addzero('b'));
  16. trace(this.addzero('c'));
  17. trace(this.addzero('d'));


hier zum freuen...ein verspätetes weihnachtsgeschenk von mir...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 28-12-2004, 14:25   #8 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
HUHU SONAAARRR....*rewink*

guten rutsch wünshc ich dir, wenn wir uns nicht lesen sollten vorher...




greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 28-12-2004, 22:42   #9 (permalink)
Thingamajig Studios
 
Benutzerbild von Argh
 
Registriert seit: May 2003
Ort: Recklinghausen
Beiträge: 293
Also gut... da sind ja schon mal einige Ansätze dabei..
Hat mir auch weitergeholfen...

@kelor
Vielen Dank für diese fertige Fkt... konnt ich gut gebrauchen
Argh ist offline   Mit Zitat antworten
Alt 29-12-2004, 07:35   #10 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
gerne geschehen...


greetz

kelor
kelor 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 02:05 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele