Сложение и вычитание, получаются разные значения!
Подскажите, почему при вычитание (-) всё срабатывает правильно
А при сложении (+) просто прибавляется ещё одно число к существующему. Проверить как это работает можете на странице: http://payforyou.top/limit.php А вот код:
<script>
window.onload = function(){
document.getElementById('button').onclick = function() {
var balanc = "20";
var gamebalanc = "3819430";
var bits = document.getElementById("bits").value;
var stav = document.getElementById("stav").value;
function randomInteger(min, max) {
var rand = min + Math.random() * (max - min);
rand = Math.round(rand);
return rand;
}
var sum = ( randomInteger(0, 100) )
if (balanc > bits) {
if (stav < sum) {
var resbits = bits * 2;
var newuserbal = balanc + resbits;
var newgamebal = gamebalanc - resbits;
}
if (stav > sum) {
var newuserbal = balanc - bits;
var newgamebal = gamebalanc + bits;
}
}
document.getElementById('userbal').innerHTML=newuserbal;
document.getElementById('gamebal').innerHTML=newgamebal;
document.getElementById('result').innerHTML=sum;
animate({
duration: 1000,
timing: function(timeFraction) {
return Math.pow(timeFraction, 2);
},
draw: function(progress) {
brick.style.left = progress * sum + '%';
}
});
};
}
</script>
|
Цитата:
Либо var bits = parseInt(document.getElementById("bits").value);, либо var bits = +document.getElementById("bits").value; |
Попробовал оба варианта и история та же.
Если я правильно понял нужно было заменить вот эту строчку var bits = document.getElementById("bits").value; на один из этих вариантов. Либо var bits = parseInt(document.getElementById("bits").value);, либо var bits = +document.getElementById("bits").value; Помогите пож. |
Теперь всё работает правильно, преобразовал в числа.
<script>
window.onload = function(){
document.getElementById('button').onclick = function() {
var balanc = "20";
var gamebalanc = "3819430";
var balanc = Number(balanc);
var gamebalanc = Number(gamebalanc);
var bits = document.getElementById("bits").value;
var stav = document.getElementById("stav").value;
var bits = Number(document.getElementById("bits").value);
var stav = Number(document.getElementById("stav").value);
function randomInteger(min, max) {
var rand = min + Math.random() * (max - min);
rand = Math.round(rand);
return rand;
}
var sum = ( randomInteger(0, 100) )
if (balanc > bits) {
if (stav < sum) {
var resbits = bits * 2;
var newuserbal = balanc + resbits;
var newgamebal = gamebalanc - resbits;
}
if (stav > sum) {
var newuserbal = balanc - bits;
var newgamebal = gamebalanc + bits;
}
}
document.getElementById('userbal').innerHTML=newuserbal;
document.getElementById('gamebal').innerHTML=newgamebal;
document.getElementById('result').innerHTML=sum;
animate({
duration: 1000,
timing: function(timeFraction) {
return Math.pow(timeFraction, 2);
},
draw: function(progress) {
brick.style.left = progress * sum + '%';
}
});
};
}
</script>
|
var a = '1', b = '2'; //строки alert(a + b) //конкатенация строк a = parseInt(a); alert(a + b) //все равно конкатенация, так как b все еще строка b = parseInt(b); alert(a + b) //сложение, ибо числа |
Цитата:
Изначально Переменные: balance и gamebalance имеют значения 20 и 3819430 И при каждом нажатии на кнопку старт скрипт отталкивается от этих значений, а мне нужно чтоб он отталкивался от новых значений которые собственно меняются в строках Game Balance и Your Balance на странице http://payforyou.top/limit.php |
Ну так перезаписывайте balance и gamebalance новыми значениями.
|
Цитата:
Просто покажите пож.
<script>
window.onload = function(){
document.getElementById('button').onclick = function() {
var balanc = "20";
var gamebalanc = "3819430";
var balanc = Number(balanc);
var gamebalanc = Number(gamebalanc);
var bits = document.getElementById("bits").value;
var stav = document.getElementById("stav").value;
var bits = Number(document.getElementById("bits").value);
var stav = Number(document.getElementById("stav").value);
function randomInteger(min, max) {
var rand = min + Math.random() * (max - min);
rand = Math.round(rand);
return rand;
}
var sum = ( randomInteger(0, 100) );
var sum = Number(sum);
if (balanc > bits) {
if (stav > sum) {
var resbits = bits * 2;
var newuserbal = balanc + resbits;
var newgamebal = gamebalanc - resbits;
document.getElementById('userbal').innerHTML=newuserbal;
document.getElementById('gamebal').innerHTML=newgamebal;
document.getElementById('msg').innerHTML=' ';
}
if (stav < sum) {
var newuserbal = balanc - bits;
var newgamebal = gamebalanc + bits;
document.getElementById('userbal').innerHTML=newuserbal;
document.getElementById('gamebal').innerHTML=newgamebal;
document.getElementById('msg').innerHTML=' ';
}
}
else document.getElementById('msg').innerHTML='Insufficient Funds';
document.getElementById('result').innerHTML=sum;
animate({
duration: 1000,
timing: function(timeFraction) {
return Math.pow(timeFraction, 2);
},
draw: function(progress) {
brick.style.left = progress * sum + '%';
}
});
};
}
</script>
|
var balanc = 20;
var gamebalanc = 3819430; var gamebalanc = Number(gamebalanc); var bits = document.getElementById("bits").value; var stav = document.getElementById("stav").value; var bits = +document.getElementById("bits").value; var stav = +document.getElementById("stav").value; var newgamebal = gamebalanc - resbits; balanc += resbits; gamebalanc -= resbits; и оперировать balanc и gamebalanc. |
Цитата:
|
serebann,
Когда считываешь value c цифрой, добавляй + везде var stav = +document.getElementById("stav").value; Либо полный Вариант var stav = parseInt(document.getElementById("stav").value); ======================= Браузер считывает из input строку, а не цифру. Мон проверить тип данных:
alert(typeof document.getElementById("stav").value)
|
Цитата:
balanc += resbits; gamebalanc -= resbits вместо: var newuserbal = balanc - bits; var newgamebal = gamebalanc + bits; Но не должно быть теперь использование newuserbal и newgamebal. Все иное, это удаление глупостей, ибо сперва объявить переменную строковым значением, а затем преобразовывать ее в число, это глупость, и такого в коде вашем не одна строка, их просто выбросить. Ну теперь отталкивайтесь от новых значений, разбирайтесь чего не изменили еще. |
| Часовой пояс GMT +3, время: 15:40. |