我正在爲Javascript編寫一個繪圖/圖形庫,並且遇到了似乎是個大問題。不知所措:Javascript比較錯誤
我具有用於限定最小和該圖形將顯示最大值4個輸入,很像一個TI-84圖形計算器:XMIN,XMAX,YMIN,YMAX。
<div id="window">
<input type="number" class="bound" id="minX" value="" />
<input type="number" class="bound" id="maxX" value="" />
<br />
<input type="number" class="bound" id="minY" value="" />
<input type="number" class="bound" id="maxY" value="" />
</div>
然後我有抓住這些值,並將它們放入功能Plot.setBounds(xMin, xMax, yMin, yMax)
每當他們修改後的代碼:
var plot1 = new Plot();
$('#window .bound').change(function() {
var minX = $('#window #minX').val(),
maxX = $('#window #maxX').val(),
minY = $('#window #minY').val(),
maxY = $('#window #maxY').val();
console.log('modified to:', minX, maxX, minY, maxY);
plot1.setBounds(minX, maxX, minY, maxY);
plot1.draw();
});
最後,對於Plot.setBounds(xMin, xMax, yMin, yMax)
功能,我有:
Plot.prototype.setBounds = function (xMin, xMax, yMin, yMax) {
if ((xMin < xMax) && (yMin < yMax)) {
this.bounds = [[xMin, xMax], [yMin, yMax]];
} else {
console.error('Plot.setBounds(xMin, xMax, yMin, yMax) requires maximum values that are greater than the minimum values!');
console.log('received:', xMin, xMax, yMin, yMax);
}
return this;
};
然而,當xMin> = 2且xMax> = 10時,問題就出現了,因爲出於某種原因比較返回了錯誤,因此錯誤被引入控制檯。您可以檢查錯誤前後給出的數字(修改爲和收到),並且它們將具有相同的值。
另一個特殊的事實是,如果手動將相同數字的計算放入控制檯,則比較返回true。這使我相信它與函數的調用有關。
這也是值得注意的問題如何只發生在XMIN> = 2,XMAX> = 10
我有一個預覽,你可以在這裏進行測試:http://dl.dropbox.com/u/962292/web/plot.js/static.html
我會很感激無限如果你能找到我的情況的解決方案。
在我所有的時間都用javascript,爲什麼我不知道呢?爲什麼人們只要在字符串前加一個加號就可以使用parseInt? – mowwwalker
@Walkerneo,如果你想在整數你需要parseInt或使用按位或零,'「34.34」| 0; // 34'。 – Joe
我注意到這可能會返回一個字符串,但是從'console.log()'給出的值是另外顯示的。無論如何,我用'+'符號和'parseFloat()'嘗試了兩種方法,而且都沒有效果。我喜歡你的想法,但:D – greenfir3