Перейти к содержимому



  • Вы не можете создать новую тему
  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1
OFFLINE   monter

monter

    Человечище

  • Модераторы
  • 50 сообщений
function toRussianString(str, prec) {
var a = "", b = "", c, d, e;
if (prec == 0)
        var str = str.toFixed(0).toString(10);
else
     var str = str.toString(10);
var nr1;
var intpart, fractpaft, precpart, divider, dot = str.lastIndexOf(".");
var i;
if (dot < 0)
    {intpart = str; fractpart = ""; divider = "";}
else
    {intpart = str.substring(0, dot);
    fractpart = str.substring(dot + 1, str.length);
    divider = ",";}
if (intpart.length > 3)
{
for (i=intpart.length-3; i>=0; i-=3)
{a = a + intpart.substr(i, 3);
c = " " + intpart.substr(0, intpart.length-a.length);
b = b + " " + intpart.substr(i, 3);}
d = (b+c).split(" ").reverse().toString().replace(/,/g, " ");
    if (d.substring(0, 1) == " ")
        e = d.substring(1, d.length-1);
    else
        e = d.substring(0, d.length-1);
}
else
e = intpart;
if (prec != 0)
{
    precpart = (Number(fractpart).toPrecision(prec)).toString(10)
        if (fractpart != "")
        {
        precpart1 = precpart.replace(".", "")
        var plus =  precpart1.lastIndexOf("e");
            if (plus > 0)
            precpart2 = precpart1.substring(0, plus);
            else
            precpart2 = precpart1
        }
        else
        precpart2 = "," + precpart.replace(".", "")
}
else
{
precpart2 = "";
divider = "";
}
nr1 = e + divider + precpart2;
return nr1;
}
// START 
var myNumber = 124739.123
alert(toRussianString(myNumber, 3))

преобразует числа 1234567890 в 1 234 567 890



#2
OFFLINE   Rey

Rey

    Regular Member

  • Пользователи
  • PipPipPip
  • 131 сообщений

А если так сократить

function toRussianString2(str, prec) {
	var str = str.toString(10).split(".");
	return str[0].replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') + ((str.length > 1)? "," + str[1].substr(0, prec): ",0");
}


// START 
var myNumber = 12473934.1234567;
alert(toRussianString2(myNumber, 5));

  • monter это нравится

#3
OFFLINE   monter

monter

    Человечище

    Топикстартер
  • Модераторы
  • 50 сообщений

 в текстовом слое, в экспрешене, с привязкой слайдера это выглядит так:

prec = 2;
str = effect("Slider Control")("Slider")[0].toString(10).split(".");
ss =str[0].replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') + ((str.length > 1)? "." + str[1].substr(0, prec): ".00");

2015-04-09_16-48-19.png

Ограничение слайдера от -1 000 000 до 1 000 000

если просто прописать 

str = effect("Slider Control")("Slider").toString(10).split(".");

возвращает строку "[object Property]", а не число.


Сообщение отредактировал monter: 09 Апрель 2015 - 16:49

  • Rey это нравится

#4
OFFLINE   Rey

Rey

    Regular Member

  • Пользователи
  • PipPipPip
  • 131 сообщений

либо так

str = effect("Slider Control")("Slider").value.toString(10).split(".");






Темы с аналогичным тегами scripts, str, строка

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных