demerzel: Zahl in Blöcke aufteilen

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

  1. 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

    --
    X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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

      1. 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.

        1. 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

          1. 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.

        2. 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

          --
          Wenn der Computer wirklich alles kann,
          dann kann er mich mal kreuzweise.
  2. 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

    1. also, erwartet wird 123, aber als ergebnis wird 141312 angezeigt.
      kann mir das einer erklären.

      Ja ich.

      Struppi.

  3. 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