Autor | Zpráva | ||
---|---|---|---|
Fusion Profil * |
#1 · Zasláno: 6. 5. 2012, 19:11:54
Zdravím,
Pracuju v AS2, chtěl bych se zeptat na nasledovní patálii: promenna_id = new Number("000000000210468210"); trace(promenna_id); v takovýmhle případě trace vyhodí číslo 210468210, což je fajn. Když ale první číslo změním s nuly na jiné, napr jedničku, potíže se začnou... transaction_id = new Number("100000000210468210"); trace(transaction_id); trace v druhým případe vyhodí nasledovní hodnotu: 1.00000000210468e+17 ... což absolutne netuším proč, ani co to mohlo zpúsobit.. vypadá to jako kdyby byl problém s tak dlouhým číslem, nebo co.. Prosím poraďte někdo. Hlavně mi tam vadí tečka za prvním číslem, která tam nesmí být, a také e+17 které se do toho čísla vmísilo. |
||
Alphard Profil |
#2 · Zasláno: 6. 5. 2012, 19:20:15
Rozsahy čísel v AS neznám (klasický integer?), ale float vám nic neříká? To je ta tečka a e+17.
|
||
Darker Profil |
#3 · Zasláno: 6. 5. 2012, 19:21:36
Fusion:
„Hlavně mi tam vadí tečka za prvním číslem, která tam nesmí být, a také e+17 které se do toho čísla vmísilo.“ To je matematický formát čísla. Pokud do vědecké kalkulačky zadáš stejné číslo dostaneš stejný výsledek. 1.005e+3 = 1005 |
||
Fusion Profil * |
#4 · Zasláno: 6. 5. 2012, 19:24:24 · Upravil/a: Fusion
No popravdě nejsem ňákej machr ve flashi a programování vúbec, takže mi to bohužel nic neříká, ale usuzuju z toho článku že to vyjařuje jakousi exponencionální hodnotu, která skřesá číslo aby bylo "opticky" menší? Anyway.. není možný nastavit aby takovýhle kouzla flash nedělal?
prostě potřebuju aby mi flash pracoval s přesne daným číslem, a také aby ho tak zobrazoval. |
||
Johnik Profil |
Fusion:
Problém je v rozsahu typu Number, jak již psal Alphard. Pokud s tím číslem nemáš v plánu pracovat jako s číslem (odčítat, násobit, ...), tak to můžeš uložit jako String, pak to zůstane pořád stejné. Edit: ActionScript 2 tohle číslo neumí vypsat v původní podobě a není na to žádný workaround. Takže stejně doporučuju přejít na AS3, kde to není problém a případně můžeš objekt Number vypisovat metodou toFixed(0), která číslo vrátí přesně jak potřebuješ. |
||
Časová prodleva: 13 let
|
0