Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-12-2003, 11:32   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 27
Korrektes Konvertieren eines String in eine Zahl

Moin,
Folgendes Problem: Ich habe ein Texteingabefeld über das der User die Variable _root.input bestimmt. Wenn ich nun diese Var mittels:

auswert = new Number (_root.input);

in eine Zahl umwandeln will geht das ganz normal. Es sei denn, die erste eingegebene Ziffer ist eine null, dann verliert Flash bei jeder Zehnerpotenz zwei Zähler. Ist das ein Feature oder ein Bug? Wie kann ich dies einfach umgehen?

Beispiel:
_root.input="10" -> auswert = 10
_root.input="20" -> auswert = 20
_root.input="30" -> auswert = 30

_root.input="010" -> auswert = 8
_root.input="020" -> auswert = 16
_root.input="030" -> auswert = 24

mfg Theo
Theodor ist offline   Mit Zitat antworten
Alt 09-12-2003, 11:39   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Flash interpretiert "030" als Oktalzahl. Alois hat da letztens einen ganz guten Workaround dafür gefunden... mal suchen.
Außerdem musst du, um Strings auszuwerten nicht "new Number(string)" schreiben. Nur "Number(string)" tuts auch.

.::tøm::.

Edit:
da isses: Fehler in MX? Number liefert falschen Wert
__________________
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 (09-12-2003 um 11:40 Uhr)
sonar ist gerade online   Mit Zitat antworten
Alt 09-12-2003, 11:40   #3 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
ich glaub, Oktalzahlen beginnen mit '0' ...

also '030' = 3*8 + 0*1 = 24 ...


multipliziere einfach mit '1', dann wird auch eine Zahl daraus ...


auswert = 1 * _root.input;
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 09-12-2003, 11:44   #4 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
ActionScript:
  1. inp = '080';
  2.  
  3. outp = 1 * inp + 1;
  4.  
  5. trace(outp); // 81
  6.  
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 09-12-2003, 11:47   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Zürich
Beiträge: 1.776
so sieht's doch schon schöner (benutzbarer) aus als bei alois!
fresh ist offline   Mit Zitat antworten
Alt 09-12-2003, 11:49   #6 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 09-12-2003, 11:53   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 27
Danke für die schnelle Antwort. Die Lösung
funktioniert aber leider nur mit Eingaben >= 78...
Theodor ist offline   Mit Zitat antworten
Alt 09-12-2003, 11:57   #8 (permalink)
random
 
Registriert seit: Jun 2001
Beiträge: 834
input = '030'

trace ( parseFloat ( input ) ) // 30
__________________
-------------------


ciao, blue
blue ist offline   Mit Zitat antworten
Alt 09-12-2003, 12:08   #9 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 27
Thankx

parseFloat funzt auch mit Kommazahlen
Theodor ist offline   Mit Zitat antworten
Alt 09-12-2003, 13:07   #10 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345


ActionScript:
  1. inp = '01';
  2.  
  3. outp = 1 * inp + 1;
  4.  
  5. trace(outp); // 2
  6.  
__________________
one out of many
pius 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 20:43 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele