2011-05-03 118 views
0

一切都很好,直到當我想計算兩個值之間的差異,並且我得到0作爲結果。如何計算Javascript中兩個字符串之間的差異?

我真的很陌生,我確定這很容易做到,而且我必須將它從字符串變成變量或類似的東西,但我不知道該怎麼做。

oldx = parseInt(document.getElementById("character").style.left); 
oldy = parseInt(document.getElementById("character").style.top); 

newx = evt.pageX; 
newy = evt.pageY; 

disx=parseInt(oldx) - parseInt(newx); 
disy=parseInt(oldy) - parseInt(newy); 

document.getElementById('disx').innerHTML=disx; 
document.getElementById('disy').innerHTML=disy; 

我在這裏測試它:http://chusmix.com/game/movechar.php你可以看到一切正常,除非我得到0結束,0

我怎麼可能使它工作? 謝謝

回答

1

你只是缺少一個parseInt函數()

difx=parseInt(oldx) - parseInt(newx); 
    dify=parseInt(oldy) - parseInt(newy); 
0

將一個字符串乘以一個將其轉換爲數字。

var myString = "5"; 

alert(myString + 19); // 519 
alert(myString*1 + 19); // 24 
0

字符轉換爲整數第一,然後你會好到哪裏去

您可以使用此方法

variable = parseInt(variable); 
1

這裏有問題

document.getElementById("character").style.left = evt.pageX; 
document.getElementById("character").style.top = evt.pageY; 

oldx = parseInt(document.getElementById("character").style.left); 
oldy = parseInt(document.getElementById("character").style.top); 

newx = evt.pageX; 
newy = evt.pageY; 

disx = parseInt(oldx) - parseInt(newx); 
disy = parseInt(oldy) - parseInt(newy); 

這裏的線

document.getElementById("character").style.left = evt.pageX; 
document.getElementById("character").style.top = evt.pageY; 

覆蓋原來的左側和頂部樣式值。請刪除它並再次檢查。

所以腳本應

function showCoords(evt){ 
    oldx = parseInt(document.getElementById("character").style.left); 
    oldy = parseInt(document.getElementById("character").style.top); 

    newx = evt.pageX; 
    newy = evt.pageY; 

    disx = parseInt(oldx) - parseInt(newx); 
    disy = parseInt(oldy) - parseInt(newy); 

    document.getElementById('oldx').innerHTML=oldx; 
    document.getElementById('oldy').innerHTML=oldy; 
    document.getElementById('newx').innerHTML=newx; 
    document.getElementById('newy').innerHTML=newy; 
    document.getElementById('disx').innerHTML=disx; 
    document.getElementById('disy').innerHTML=disy; 
} 

你可以找到一個工作樣本here

+0

+1:非常真實。 @外星塞古拉:正如我所說,問題確實在別的地方。 – naveen 2011-05-03 04:00:45

0

加法運算符有一個字符串重載,所以如果你添加兩個字符串保存整數值,它們將被連接在一起。

然而,事情是減法

var disx = oldx - newx; 
var disy = oldy - newy; 

有一點不同的上面的代碼應該可以正常工作,因爲沒有超載減法運算符( - )的字符串超載。

例子:Click to view jsFiddle

的問題是其他地方。

相關問題