Страница 1 из 1

Исправит скрипт...

СообщениеДобавлено: 21 дек 2008, 02:02
Wakarchuk
Нашел скрипт который производит начисление вирт-денег за сообщение и репутацию на форуме, поставил первые 2-3 дня - радость, 4-5 - хм... странные искажения (ну и ладно), теперь все время замечаю что скрипт начал неправильно работать он искажает суму например:
надо 7.5
показывает 7.00000000005
или
надо 7.5
показывает
7.0000004

умы яваскриптов помогите решить проблему

<script language="JavaScript">
var nick = ['ZloVeЩиЙ','XxMARSxX','Vientam']; //список пользователей
//Кому и сколько платили:
nick['ZloVeЩиЙ'] = '0'; // выплата текстом (пишем что хотим но только в одинарных ковычках)
nick['XxMARSxX'] = 69; // выплата числом
nick['Vietnam'] = 11+22+33-55; // выплата несколькими платежами 11 первый 22 второй 33 третий 55 штраф
Mcost=0.05; //стоит 1 сообщение (ща стоит 5 центов)
Rcost=0.05; //за +1 балл репутации +5 центов за -1 балл -5 центов
messages=$POSTS$;
rep=$REP_RATING$;
Mmoney=Math.round(100 * messages * Mcost)/100;
Mrep=Math.round(100 * rep * Rcost)/100;
for(var i=0; i<nick.length; i++) {
if('$USERNAME$'==nick[i]) {
N=nick[i];
if(isNaN(nick[N])) {
ue='$';
Tmoney=Mmoney + Mrep;
} else {
ue='$';
Tmoney=Mmoney + Mrep - Math.abs(nick[N]);
}
cashout=ue + nick[N];
break;
}
else
{
Tmoney=Mmoney + Mrep;
cashout='0'; //выводится если ничего не платили
}
}
if(Tmoney) {
document.write('<div align="center">');
document.write('<BR>RuR: <font color="green"><b>'+ Tmoney +'</b></font>');
document.write('<BR>Выплачено: <font color=red><b>'+ cashout +'</b></font>');
document.write('</div>');
}
</script>

Re: Исправит скрипт...

СообщениеДобавлено: 21 дек 2008, 02:48
XxMARSxX
Код: Выделить всё
...
... Math.round(100 * Tmoney)/100; ...
... Math.round(100 * cashout)/100; ...
...

Re: Исправит скрипт...

СообщениеДобавлено: 21 дек 2008, 04:05
Wakarchuk
а поподробней!?

Re: Исправит скрипт...

СообщениеДобавлено: 27 дек 2008, 23:43
Wakarchuk
ХхМарсХх, может все таки ткнеш носом куда надо, раз начал помоги до конца его исправит, вроде по подсчетам должно быть одно ап иногда такое показывает....

Re: Исправит скрипт...

СообщениеДобавлено: 27 дек 2008, 23:53
XxMARSxX
Код: Выделить всё
............
document.write('<div align="center">');
document.write('<BR>RuR: <font color="green"><b>'+ Math.round(100 * Tmoney)/100 +'</b></font>');
document.write('<BR>Выплачено: <font color=red><b>'+ Math.round(100 * cashout)/100 +'</b></font>');
document.write('</div>');
............

Re: Исправит скрипт...

СообщениеДобавлено: 28 дек 2008, 00:56
Wakarchuk
Спасибо тебе ХхМАРСХх, знал бы как поставил +
Но в след с решением появилась еще одна проблема теперь когда прописываю чило к выплате из общей сумы все вычитается но в месте выплачено пишется не число которое выплатили...

<script language="JavaScript">
var nick = ['ZloVeЩиЙ','XxMARSxX','Vientam'];
nick['ZloVeЩиЙ'] = '0.85';
nick['XxMARSxX'] = 69;
nick['Vietnam'] = 11+22+33-55;
Mcost=0.05;
Rcost=0.05;
messages=$POSTS$;
rep=$REP_RATING$;
Mmoney=Math.round(100 * messages * Mcost)/100;
Mrep=Math.round(100 * rep * Rcost)/100;
for(var i=0; i<nick.length; i++) {
if('$USERNAME$'==nick[i]) {
N=nick[i];
if(isNaN(nick[N])) {
ue='$';
Tmoney=Mmoney + Mrep;
} else {
ue='$';
Tmoney=Mmoney + Mrep - Math.abs(nick[N]);
}
cashout=ue + nick[N];
break;
}
else
{
Tmoney=Mmoney + Mrep;
cashout='0';
}
}
if(Tmoney) {
document.write('<div align="center">');
document.write('<BR>RuR: <font color="green"><b>'+ Math.round(100 * Tmoney)/100 +'</b></font>');
document.write('<BR>Выплачено: <font color=red><b>'+ Math.round(100 * cashout)/100 +'</b></font>');
document.write('</div>');
}
</script>
Зловещий всего (7.85)
Рур: 7
Выплаченно: NaN

Помоги исправить и эту ошибку, а я пошел тебе юзербар искать )

Re: Исправит скрипт...

СообщениеДобавлено: 28 дек 2008, 01:25
XxMARSxX
попробуй вторую версию http://web-codes.net/viewtopic.php?p=234#p234, она удобнее и там короче все уже исправлено ;) либо сравни соответствующие или похожие строки второго скрипта и первого

Re: Исправит скрипт...

СообщениеДобавлено: 28 дек 2008, 01:32
Wakarchuk
Спасибо и на этом... А сравнивать мне безсмисленно так как в ЯваСкрипте ничего непонимаю...
Думаю просто уберу из этого скрипта поле выплаченно...
Еще раз спасибо