我有一個非常蹩腳的問題。但我不知道如何解決它。總結退貨NaN
我想在循環中添加兩個浮點數(例如:1.0583389964654335),其長度爲1500。
var distance = 0;
for(var i = 0;i< latArray.length;i++)
{
var s = GCDistance(latArray[i],lonArray[i],latArray[i+1],lonArray[i+1]);
distance = parseFloat(distance) + parseFloat(s);
alert(distance);
}
var radius = 6378137.0 ; // earth radius
var DE2RA = 0.01745329252; // degre to radian conversion
GCDistance= function (lat1, lon1, lat2, lon2) {
//console.log(lat1, lon1, lat2, lon2);
if (lat1 == lat2 && lon1 == lon2) return 0;
lat1 *= DE2RA;
lon1 *= DE2RA;
lat2 *= DE2RA;
lon2 *= DE2RA;
var d = Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon1 - lon2);
if(isNaN(radius * Math.acos(d)))
{
console.log(lat1, lon1, lat2, lon2);
}
//console.log((radius * Math.acos(d)));
return (radius * Math.acos(d));
};
最初警報返回數字。經過一定的限制後,它變成NaN。
數字有多大?你是否溢出了數字的大小? –
什麼是s ????? –
s是一個浮點數。例如。 s = 1.0583389964654335。 –