Jump to content
  • 0

Уровень


Rasie1
 Share

Question

Вот скрипт:

<script language="JavaScript"> 
var nick = ['$USERNAME$'];

nick['$USERNAME$'] = 0;

Mcost=0.014;
Rcost=0.045;
Scost=0.015;
Kcost=0.009;
Fcost=0.029;
Icost=0.011;
Acost=0.089;

messages=$_FORUM_ENTRIES$;
rep=$_REPUTATION$;
news=$_NEWS_ENTRIES$;
komments=$_COM_ENTRIES$;
files=$_LOAD_ENTRIES$;
images=$_PHOTO_ENTRIES$
articles=$_PUBL_ENTRIES$

Mmoney=Math.round(100 * messages * Mcost)/100;
Mrep=Math.round(100 * rep * Rcost)/100;
Mnews=Math.round(100 * news * Scost)/100;
Mkomments=Math.round(100 * komments * Kcost)/100;
Mloadfiles=Math.round(100 * files * Kcost)/100;
Mphotos=Math.round(100 * images * Icost)/100;
Mpubl=Math.round(100 * articles * Acost)/100;

for(var i=0; i<nick.length; i++) {
if('$USERNAME$'==nick[i]) {
N=nick[i];
if(isNaN(nick[N])) {
ue='';
Tmoney=Mmoney + Mrep + Mnews + Mphotos + Mpubl + Mkomments + Mloadfiles;
} else {
ue='R';
Tmoney=Mmoney + Mrep + Mnews + Mphotos + Mpubl + Mkomments + Mloadfiles - Math.abs(nick[N]);
}
cashout=ue + nick[N];
break;
}
else
{
Tmoney=Mmoney + Mrep + Mnews + Mphotos + Mpubl + Mkomments + Mloadfiles;
cashout='Мимо пробегал';
}
}
if(Tmoney) {
document.write('');
document.write('Уровень: <font color="green"><b> '+ Tmoney +' </b></font>');
document.write('');
}
</script>

Он будет выводить число, например 2.359. Мне нужно чтобы число до точки(в данном случае 2) скрипт делал огромным, точку убирало, и те 359 округляло до сотых.

Тоесть код 2.359 будет выглядить примерно так:

2 36%

так возможно? и как это сделать? можете отредактировать такой скрипт?

заранее ОГРОМНОЕ СПАСИБО!!

Link to comment
Share on other sites

18 answers to this question

Recommended Posts

  • 0
Вот скрипт:

так возможно? и как это сделать? можете отредактировать такой скрипт?

заранее ОГРОМНОЕ СПАСИБО!!

Да, такое возможно. Сделать это самому руками.

Отредактировать скрипт - 100$ в час. Зараннее огромное пожалуйста.

Умножить число на 100, округлить, разделить число на 100.

Дерзай, Циолковский!

Link to comment
Share on other sites

  • 0

var n = 2.359;
var arr = n.toString().split('.');

alert(parseInt(arr[0])); // 2
alert(parseInt(arr[1])); // 359

Это чтобы получить число до и после точки. Кстати можно ли проще? А то какой-то извращенный метод у меня.

Link to comment
Share on other sites

  • 0

что-то не получается... я в JavaScript очень плохо шарю - тот большой - всего лишь отредактированный мной...

так что что с этим кодом делать? =)

var n = 2.359;
var arr = n.toString().split('.');
alert(parseInt(arr[0])); // 2
alert(parseInt(arr[1])); // 359

Edited by Rasie1
Link to comment
Share on other sites

  • 0

Не понял...

2.359 * 100 = 235.9

235.9 ~ 236

236 / 100 = 2.36

:) :) :)

Хотел расписать, чтобы продемонстрировать чего не понял, а посмотрел сам на свою писанину и понял, что все понял! Видимо я мыслями в субботе уже :)

Link to comment
Share on other sites

  • 0
ладно. как изменить размер целого числа?

У целых чисел нет размерности. Или у вас специфическая математика?

Можно даже написать функцию, которая бы округляла до какого-то количества знаков.

Кто какой алгоритм предложит?

round( 1.2345, 2 ) округлить число до 2х знаков после запятой.

Код писать не надо, чтобы не давать халявщикам готового решения.

Link to comment
Share on other sites

  • 0

Ничего лучше не придумал чем:

1) получить левую и правую части числа (до запятой и после запятой)

2) десятичную часть перевести в строку, запомнить 3-ий знак и отрезать у нее (substr) все знаки кроме первых 2-х

3) перевести первые 2 знака в число

4) потом перевести 3-ий знак в число и сравнить с пятеркой

5) если больше, то увеличть двузначное число на единицу

6) написать строку типа: левая (целая) часть + точка + двузначное число

7) вернуть полученное число (return parseFloat(результат):)

Знаю, что изврат. Но ничего лучше не придумал...

UPD:

Погуглил и с великим трудом нашел алгоритм округления (можно сказать случайно напоролся).

Возник вопрос: как цикл написать чтоб число в степень возводить?

Edited by Great Rash
Link to comment
Share on other sites

  • 0
Ничего лучше не придумал чем:

1) получить левую и правую части числа (до запятой и после запятой)

2) десятичную часть перевести в строку, запомнить 3-ий знак и отрезать у нее (substr) все знаки кроме первых 2-х

3) перевести первые 2 знака в число

4) потом перевести 3-ий знак в число и сравнить с пятеркой

5) если больше, то увеличть двузначное число на единицу

6) написать строку типа: левая (целая) часть + точка + двузначное число

7) вернуть полученное число (return parseFloat(результат):)

Знаю, что изврат. Но ничего лучше не придумал...

UPD:

Погуглил и с великим трудом нашел алгоритм округления (можно сказать случайно напоролся).

Возник вопрос: как цикл написать чтоб число в степень возводить?

Как замудрил то!

Ларчик просто открывается :)

Достаточно помнить про экспоненциальную запись

1E2 = 100

1E3 = 1000

var k = Number( "1E" + power );

:)

Далее по моему первому алгоритму.

Link to comment
Share on other sites

  • 0
Number#toFixed и Number#toPrecision уже не в моде?

Важно не то, что именно ты используешь, важно то, как ты мыслишь.

toFixed можно использовать, несомненно, но куда интереснее понять, как аналогичного можно достичь другими средствами.

Link to comment
Share on other sites

  • 0
Речь шла об алгоритме, а не о методах встроенного объекта

что-то я не вижу в ТС, что необходим именно алгоритм, написано:

как это сделать?

т. е. в первую очередь требуется именно способ.

Важно не то, что именно ты используешь, важно то, как ты мыслишь.

toFixed можно использовать, несомненно, но куда интереснее понять, как аналогичного можно достичь другими средствами

я прекрасно знаю, как обойтись без toFixed, а так же знаю, что в большинстве браузеров без toFixed работать будет быстрее, но там где от меня не требуют производительности, я не буду изобретать велосипеды.

Link to comment
Share on other sites

  • 0
что-то я не вижу в ТС, что необходим именно алгоритм, написано:

т. е. в первую очередь требуется именно способ.

я прекрасно знаю, как обойтись без toFixed, а так же знаю, что в большинстве браузеров без toFixed работать будет быстрее, но там где от меня не требуют производительности, я не буду изобретать велосипеды.

Так получилось, что многие тут предпочитают не напрямую код выдавать, а натолкнуть на ответ.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy