Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Добавить пробелы (http://www.flasher.ru/forum/showthread.php?t=83173)

Clockmaker 28.07.2006 21:18

Добавить пробелы
 
Может кто уже сталкивался...
Дано: некоторая переменная, которая выводится в текстовое поле. Это большое число. Естественно, что плохо читается.
Нужно: в число через каждые три цифры добавить пробел. Пакость еще и в том, что добавлять надо с конца числа :(

etc 28.07.2006 21:21

Переведи в строку и разбей на пробелы. В чём проблема?

Clockmaker 28.07.2006 21:29

Проблема в том, что число уменьшается, соответственно разбивка сползает.... Пробовал через массив и инверсию - не канает - не избавиться от запятых....

iNils 28.07.2006 21:45

Код:

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, "'"));


KidsKilla 28.07.2006 22:48

2 iNils пытался сделать ф-цию побыстрее. получается ток в 3 раза медленней =)

iNils 28.07.2006 23:16

Цитата:

Сообщение от KidsKilla
2 iNils пытался сделать ф-цию побыстрее. получается ток в 3 раза медленней =)

:) Наверняка есть более быстрые варианты.

Clockmaker 29.07.2006 04:17

Ну, мне быстрее не надо - раз в секунду хватит ;-). Жалко портрет iNils-а в комменты вставить нельзя, придется спешал тенксом обойтись ;-) За выходные доделаю и повешу эти часики под кличкой "Memento mori"

iNils 30.07.2006 20:40

Дописал функцию с учетом дробного числа
Код:

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, "'"));


Clockmaker 31.07.2006 00:16

Ну и собственно продукты:
Волпейпер:
http://www.colclocks.com/gifts/Memen...to_mori_ru.exe
Скринсейвер:
http://www.colclocks.com/gifts/Memen...to_mori_ru.exe
Ну и пожелание iNils-у - увидеть обнуление счетчика с его кодом в реальном масштабе времени ;-)))


Часовой пояс GMT +4, время: 01:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.