Dezimal <=> Hexadezimal
Felix
- javascript
Man kann ja Eingaben aus einem Formular-Input auslesen und zB der Variable ro zuweisen ...
zB: var ro = document.farben.ro.value;
Es handelt sich um Zahleneingaben ... Es ist aber nicht möglich mit ro zu rechnen ... Wie wandel ich die Eingabe (Zahl) in eine Zahl, mit der man in JS rechnen kann um?
Danke!
Gibt es eine Möglichkeit,
Hi,
Es handelt sich um Zahleneingaben ...
Nein, um alphanumerische Texteingabe.
Es ist aber nicht möglich mit ro zu rechnen ...
Halt in eine Zahl umwandeln.
Wie wandel ich die Eingabe (Zahl) in eine Zahl, mit der man in JS rechnen kann um?
Z.B. ro=1*ro;
Gruß, Cybaer
Wie wandel ich die Eingabe (Zahl) in eine Zahl, mit der man in JS rechnen kann um?
Z.B. ro=1*ro;
Cybaer,
Nicht besonders saubere Lösung.
Ich würd parseInt() bzw. parseFloat() vorziehen.
Gunnar
Hi,
Z.B. ro=1*ro;
Cybaer,
Nicht besonders saubere Lösung.
Cybaer ist halt recht ideologiefrei und der Erfolg gibt ihm recht.
;-)
Gruss,
Ludger
Ludger,
Cybaer ist halt recht ideologiefrei und der Erfolg gibt ihm recht.
;-)
Bis in einer künftigen JS-Version mit Typen nicht mehr so sorglos umgegangen werden darf. Dann ist mein Tag gekommen. ;-)
Gunnar
Hi,
Bis in einer künftigen JS-Version mit Typen nicht mehr so sorglos umgegangen werden darf.
Das hat mit "sorglos" überhaupt nichts zu tun. :-)
Gruß, Cybaer
Hallo,
Z.B. ro=1*ro;
Cybaer ist halt recht ideologiefrei und der Erfolg gibt ihm recht.
Wieso Erfolg? parseInt ist viel toleranter gegenüber Fehleingaben, erledigt also zwei Arbeitsgänge in einem. Eine Abfrage auf NaN wäre in beiden Fällen angebracht, sonst würde beim darauffolgenden Rechnen Müll herauskommen.
Im Übrigen, wieso heißt das Topic »Dezimal <=> Hexadezimal«? Mit 1 * "FF" wird man kein Number(255) bekommen, mit parseInt("FF", 16) schon (1*"0xFF" wäre wirklich zu umständlich). Wenn die eingegebenen Werte Dezimalwerte sind und in Hexadezimaldarstellung benötigt werden, dann sucht Felix parseInt(ro, 10).toString(16) (und eventuell .toUpperCase());
Mathias
Hi,
Wieso Erfolg?
Weil es das macht, was es machen soll.
Wollte der Fragesteller etwas anderes, muß er halt besser fragen. >;->
Im Übrigen, wieso heißt das Topic »Dezimal <=> Hexadezimal«?
Gute Frage (s.o.). Aber auch bei deiner "Fragedeutung" kommt man nicht umhin festzustellen, daß damit a) immer noch nicht die beidseitig gerichtete Umwandlung im Titel klar wird und b) CSS ja ohnehin keine Hexadezimalzahlen benötigt, sondern mit Dezimalzahlen doch ziemlich gut klarkommt.
Wenn die eingegebenen Werte Dezimalwerte sind und in Hexadezimaldarstellung benötigt werden, dann sucht Felix parseInt(ro, 10).toString(16) (und eventuell .toUpperCase());
Oder lieber gleich stringInt() aus der Coding: Number-Library ... ;-)
Gruß, Cybaer
Hi,
Z.B. ro=1*ro;
Nicht besonders saubere Lösung.
Die JS' Typumwandlung ist spezifiziert. "Unsauber" ist nur etwas, was nicht spezifiziert wurde und ggf. zufällig richtig arbeitet.
Ich würd ... vorziehen.
Viele Wege scripten vom ROM ... ;-)
Gruß, Cybaer
Hi,
Z.B. ro=1*ro;
Nicht besonders saubere Lösung.Die JS' Typumwandlung ist spezifiziert. "Unsauber" ist nur etwas, was nicht spezifiziert wurde und ggf. zufällig richtig arbeitet.
das waere dann ein hack oder (quick and) dirty.
Wenn Du Recht haettest waere naemlich der Umkehrschluss, dass alles sauber ist, was spzifiziert worden ist. Dann wuerde man aber das Wort sauber nicht benoetigen.
Gruss,
Ludger
Hi,
Dann wuerde man aber das Wort sauber nicht benoetigen.
Davon, daß es viel mehr Wörter gibt, als man wirklich benötigt, leben u.a. Thesaurus-Hersteller! ;-))
Gruß, Cybaer