Тема: 100000 в 100 000
Показать сообщение отдельно
Старый 26.08.2011, 02:29
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 3  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Вариант вроде такого неправильный:
Код AS3:
var a:String=String(num);
var l:int=a.length / 3;
var b:String="";
for (var i:int=0; i<l; i++){
b+=b.substr(i*3,3)+" ";
}
Потому что парсит слева-направо. Надо наоборот.
Вариант 2:
Код AS3:
var a:int=num;
var str:String="";
var c:int=0;
while (a){
if (c++ === 3) str=" "+str;
str=String(a%10)+str;
a*=0.1;
}
Вот так мужественно, но расточительно с точки зрения ресурсов... Надо бы отцеплять по 3 разряда и делить разом на 1000, хех...
Вариант 3:
Код AS3:
var a:int=num;
var str:String="";
var c:int=0;
while (a){
if (a >= 1000) a=" "+a;
str=String(a%1000)+str;
a*=0.001;
}
Но как-то пробел добавит спереди, надо ещё хитрее.
Но меня беспокоит производительность. А вдруг число 100000000000000000?
Вот в ByteArray если писать циферки, не думая, а потом считать задом наперед, вот да...
P.S. пол 5 утра, код писался здесь и не тестился. Почти уверен, что нерабочий... Но Вы дерзайте, я вот в Вас верю.