Autor Zpráva
wondrs
Profil *
čau,
potřebuju si udělat funkci ktéra by mezi tisíce přidávala mezery ( 10 000 misto 10000)
vygoogloval jsem návod na něco podobnýho, akorát s čárkama:
my_number = "12587654325";
// array in sections of 3 to separate with commas
trace(my_number);
var dollar_array:Array = new Array();
var start:Number;
var end:Number = my_number.length;
trace(my_number.length);
while (end > 0) {
trace(end);
start = Math.max(end - 3, 0);
dollar_array.unshift(my_number.slice(start, end));
end = start;
}

// assign a comma delimited value from dollar_array
my_number = dollar_array.join(",");
trace(my_number);


Ale když se z toho snažím udělat funkci:
function format(input) {
my_number = input;
// array in sections of 3 to separate with commas
trace(my_number);
var dollar_array:Array = new Array();
var start:Number;
var end:Number = my_number.length;
trace(my_number.length);
while (end>0) {
trace(end);
start = Math.max(end-3, 0);
dollar_array.unshift(my_number.slice(start, end));
end = start;
}

// assign a comma delimited value from dollar_array
my_number = dollar_array.join(" ");
return (my_number);
}
trace(format(10000));


už na druhým trace to vyhodí undefined.. poradí někdo, prosím ?
FlashManiac
Profil
wondrs
tak zlákladním problémem je to, že ten tvůj vygooglovaný příklad nepředává ke zpracování číslo nýbrž řetězec

kdežto ty v té tvojí funkci předáváš číslo.. takže pokud si to číslo převedeš na String bude to fungovat.. potíží samozřejmě je, že tím ztrácíš hodnotu čísla jako čísla ale je to už jen řetězec znaků, čili pokud bys to chtěl používat dále na nějaké matematické funkce, musel by sis udělat jeětě nějaký dekodér :)
function format(input:Number) {
var my_number:String = input.toString();
// array in sections of 3 to separate with commas
trace(my_number);
var dollar_array:Array = new Array();
var start:Number;
var end:Number = my_number.length;
trace(my_number.length);
while (end>0) {
trace(end);
start = Math.max(end-3, 0);
dollar_array.unshift(my_number.slice(start, end));
end = start;
}

// assign a comma delimited value from dollar_array
my_number = dollar_array.join(" ");
return (my_number);
}
trace(format(10000)); 
wondrs
Profil *
Jej ja sem blbec, že mě taková prkotina nenapadla :D diky moc ! :) vystup u mě de stejně akorat do textu takže to klidně řetězec bejt může... :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: