Diskuse: Flash - Nula před číslem

Obsah fóra Flash

Přidat příspěvek

  • <<
  • 1
  • >>
  • Zobrazeno 6 příspěvků. | Stránka 1 z 1. | Řazeno podle data vzestupně
  • Příspěvků: 21

    21.7.2010 22:18 Nula před číslem Odpovědět Citovat

    Dobrý den,
    Mám vytvořenou kalkulačku, která počítá rovnici např. A+B+C=D
    Na začátku mám pro pole ABC dosazené nuly, protože pokud v jednom poli chybí "0" pak je výsledek NaN.
    Vše funguje bez problémů. Vadí mi ale, že když zadávám do polí čísla a zapomenu umazat před číslem tu nulu, tak to má vliv na výsledek. S číslem "11" kalkulačka pracuje jinak než s číslem "011".
    Jak je to možné a jde s tím něco dělat?

     

  • Příspěvků: 65

    21.7.2010 23:22 zkusím od boku Odpovědět Citovat

    Možná by šlo nechat všechna pola od začátku prázdná čímž se vyhneš nechtěnému zachování znaku a až po stisknutí "=" (nebo jak to máš řešené) kontrolovat zda je pole prázdné a pokud ano, doplnit "0" až v tomto kroku.

     

  • Příspěvků: 428

    22.7.2010 15:31 RE: Nula před číslem Odpovědět Citovat

    Nestacila by jenom funkce na scitani treba tri prvku?

    function secti(a:Number=0, b:Number=0, c:Number=0):Number {
        return a+b+c;
    }
    var vysledek:Number = secti(10, 20, 30); 
    var vysledek2:Number = secti(10, 20);
    var vysledek3:Number = secti(10, -20);
    trace(vysledek); // 60
    trace(vysledek2); // 30
    trace(vysledek3); // -10
    //pouze AS3

     

  • Příspěvků: 21

    24.7.2010 15:44 dekuji za reakce... Odpovědět Citovat

    Kalkulacka pocita slozitejsi rovnici. A+B+C byl jen priklad.
    Tu rovnici pocita (onEnterFrame) porad.
    Pouzivam AS2...

     

  • Příspěvků: 449

    24.7.2010 20:57 RE: dekuji za reakce... Odpovědět Citovat

    Myslím, že výsledek "011", pokud pracujete s čísly a ne řetězci, nemůže nastat a nejspíš někde chybí převod na číslo, buď na vstupu, nebo po sloučení polí atd, dle účelu.
    např.: var C:Number = Number(A) + Number(B);

     

    Nahoru a dolů ... ... jojo, tak to je.

  • Příspěvků: 428

    24.7.2010 21:49 RE: dekuji za reakce... Odpovědět Citovat

    Mozna jeste takhle ale onEnterFrame mozna bude problem.

    var poleCisel:Array = new Array();
    function secti(array:Array):Number {
     var _vysledek:Number = 0;
     for (var i:Number = 0; i<array.length; i++) {
      _vysledek += parseFloat(array[i]);
     }
     return _vysledek;
    }
    poleCisel = ["000010", "000020", "0030", "00040"];
    var vysledek:Number = secti(poleCisel);
    trace(vysledek); // 100

     

  • <<
  • 1
  • >>
  • Zobrazeno 6 příspěvků. | Stránka 1 z 1. | Řazeno podle data vzestupně

Přihlášení uživatele