Zahl in Blöcke aufteilen
demerzel
- javascript
hallo miteinander,
ich habe eine zahl, zb. 200 und möchte diese in die einzelnen potenzen
(2=100 potenz,0=10 potenz,0=1 potenz)
kann mir einer einen befehl dafür nennen?
hintergrund:
habe einen counter der ein datum runterzählt und ich möchte den zahlen bilder(von 0-9) hinterlegen die dann ausgegeben werden sollen.
danke schonmal im vorraus
ciao pete
Die JavaScript-Formel, nach der Du die x-te Zehnerpotenz der Zahl n errechnen kannst:
Math.floor(n / 10^x % 10)
Also wird der Divisionsrest (Modulo / %) von 10 aus dem Ergebnis der Division durch die gewünschte Zehnerpotenz genommen und abgerundet.
Du kannst natürlich auch die Zahl mit toString() in einen String umwandeln und dann nach dem entsprechenden Zeichen suchen - dann musst Du aber den Fall berücksichtigen, dass die Zahl n nicht groß genug ist.
Gruß, LX
hallo,
ersteinmal danke fürs antworten
aber etwas mach ich noch falsch.
wenn ich
count = 200;
days = Math.floor(count/10^2 %10);
eingebe, bekomme ich statt ner 2 als ergebnis 22
was mache ich falsch?
ciao pete
aber etwas mach ich noch falsch.
nö, du nicht.
count = 200;
days = Math.floor(count/10^2 %10);eingebe, bekomme ich statt ner 2 als ergebnis 22
^ ist der oder-Operator. Um die Potenz zu berechnen brauchst du http://de.selfhtml.org/javascript/objekte/math.htm#pow@title=Math.pow()
Struppi.
hallo struppi
ich möchte nicht die potenz ausrechnen.
ich möchte eine zahl in die einzelnen ziffern splitten.
z.bsp. 123 in
1
2
3
hoffe jetzt ist es verständlicher ;-)
ciao peter
hallo struppi
ich möchte nicht die potenz ausrechnen.
ich möchte eine zahl in die einzelnen ziffern splitten.
z.bsp. 123 in
Du kannst es einmal mit der Formel von LX probieren (dafür brauchst du die 10'er Potenzen) oder mit split:
Number.prototype.split = function() {
return String(parseInt(this)).split('');
}
count = 123;
alert(count.split());
Struppi.
Hallo,
days = Math.floor(count/10^2 %10);
^ ist der oder-Operator.
nein, der Operator für bitweises XOR. Und daher berechnet dieser Ausdruck:
(200/10) XOR (2%10)
= 20 XOR 2
= 22 qed.
Ciao,
Martin
hallo miteinander,
hier nochmal der ganze code:
days100 = Math.ceil(123 / 10^2 );
days10 = Math.ceil(123 / 10^1 );
days1 = Math.ceil(123 / 10^0 );
days = days100 + '' + days10 + '' + days1;
also, erwartet wird 123, aber als ergebnis wird 141312 angezeigt.
kann mir das einer erklären.
ciao peter
ps: habe math.ceil verwendet weil das gleich automatisch aufrundet
also, erwartet wird 123, aber als ergebnis wird 141312 angezeigt.
kann mir das einer erklären.
Ja ich.
Struppi.
hallo miteinander,
habe jetzt eine akzeptable lösung:
count = "irgendeine zahl";
rest = 0;
days100 = Math.floor( count / 100 );
rest = count - days100 * 100;
days10 = Math.floor( rest / 10 );
days1 = rest - days10 * 10;
ergebnis = days100 + '' + days10 + '' + days1;
ciao pete