![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2005
Адрес: Saint-Petersburg
Сообщений: 5
|
Может кто уже сталкивался...
Дано: некоторая переменная, которая выводится в текстовое поле. Это большое число. Естественно, что плохо читается. Нужно: в число через каждые три цифры добавить пробел. Пакость еще и в том, что добавлять надо с конца числа ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Переведи в строку и разбей на пробелы. В чём проблема?
|
|
|||||
|
Регистрация: Nov 2005
Адрес: Saint-Petersburg
Сообщений: 5
|
Проблема в том, что число уменьшается, соответственно разбивка сползает.... Пробовал через массив и инверсию - не канает - не избавиться от запятых....
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
function group (num, char) {
var str:String = String (num);
var mod:Number = str.length % 3;
var len:Number = (str.length - mod) / 3;
if (mod == 0) {
var i:Number = 1;
var strOutput:String = str.substr (0, 3);
} else {
var i:Number = 0;
var strOutput:String = str.substr (0, mod);
}
for (; i < len; i++) {
strOutput += char + str.substr (i * 3 + mod, 3);
}
return strOutput;
}
trace (group (1, "'"));
trace (group (12, "'"));
trace (group (123, "'"));
trace (group (1234, "'"));
trace (group (12345, "'"));
trace (group (123456, "'"));
trace (group (1234567, "'"));
trace (group (12345678, "'"));
trace (group (123456789, "'"));
trace (group (1234567890, "'"));
|
|
|||||
|
.grin! wuz here
|
2 iNils пытался сделать ф-цию побыстрее. получается ток в 3 раза медленней =)
|
|
|||||
|
Регистрация: Nov 2005
Адрес: Saint-Petersburg
Сообщений: 5
|
Ну, мне быстрее не надо - раз в секунду хватит ;-). Жалко портрет iNils-а в комменты вставить нельзя, придется спешал тенксом обойтись ;-) За выходные доделаю и повешу эти часики под кличкой "Memento mori"
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Дописал функцию с учетом дробного числа
function group (num, char):String {
var arrayStr = String (num).split (".");
var mod:Number = arrayStr[0].length % 3;
var len:Number = (arrayStr[0].length - mod) / 3;
if (mod == 0) {
var i:Number = 1;
var strOutput:String = arrayStr[0].substr (0, 3);
} else {
var i:Number = 0;
var strOutput:String = arrayStr[0].substr (0, mod);
}
for (; i < len; i++) {
strOutput += char + arrayStr[0].substr (i * 3 + mod, 3);
}
if (arrayStr.length > 1) {
strOutput += "." + arrayStr[1];
}
return strOutput;
}
trace (group (1234567.0123, "'"));
trace (group (1234567, "'"));
|
|
|||||
|
Регистрация: Nov 2005
Адрес: Saint-Petersburg
Сообщений: 5
|
Ну и собственно продукты:
Волпейпер: http://www.colclocks.com/gifts/Memen...to_mori_ru.exe Скринсейвер: http://www.colclocks.com/gifts/Memen...to_mori_ru.exe Ну и пожелание iNils-у - увидеть обнуление счетчика с его кодом в реальном масштабе времени ;-))) |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|