|
|
|||||
Регистрация: Sep 2006
Сообщений: 453
|
100000 в 100 000
Как сделать, из числа 100000 строку 100 000, то есть с пробелом? Подскажите функцию
|
|
|||||
Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
|
писать свою
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Вариант вроде такого неправильный:
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: 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: 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 утра, код писался здесь и не тестился. Почти уверен, что нерабочий... Но Вы дерзайте, я вот в Вас верю.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Как-то так. На производительность не проверял.
function separateDigitStr(str : String, delimiter : String = ".", count : int = 3):String{ // assert if(count < 1){ throw new ArgumentError("Количество знаков между разделителями должно быть больше нуля."); } // var nSeparates : uint = Math.ceil(str.length/count)-1; var shift : uint = str.length%count; var head : String = ""; if(nSeparates && shift){ head = str.substr(0, shift) + delimiter str = str.substr(shift); nSeparates--; } for(var i : int = 0; i < nSeparates; i++){ str = str.substr(0, count*(i+1) + i) + delimiter + str.substr(count*(i+1) + i); } return head + str; }
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. Последний раз редактировалось ChuwY; 26.08.2011 в 06:05. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Последний раз редактировалось etc; 26.08.2011 в 09:40. |
|
|||||
Modus ponens
|
Да, конечно, есть минусы - нужно делать отдельную проверку для дробных и отрицательных - но это уже, как говорится - тема для самостоятельных практических занятий
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 26.08.2011 в 11:43. |
|
|||||
Регистрация: Apr 2010
Сообщений: 219
|
А что такое input? Там переменная нигде не потерялась?
|
|
|||||
Регистрация: Apr 2010
Сообщений: 219
|
Ой, что-то аргумент не заметил.
Смущает конструкция for (; input > 1; input /= 1000) Последний раз редактировалось arkadattx; 26.08.2011 в 11:57. |
|
|||||
За ненадобностью опущено объявление итератора цикла. Точно также допустимо опускать и прочее, вот, например, бесконечный цикл:
|
Часовой пояс GMT +4, время: 12:11. |
|
« Предыдущая тема | Следующая тема » |
|
|