Javascript 获取介于两个数字之间的数字

Javascript 获取介于两个数字之间的数字,javascript,math,Javascript,Math,如何将编号置于两个编号之间 例如: var start = 0; var end = 100; var inBetween = 50; 在我的情况下,它将类似于: var start = -122.0842499; var end = 5.6366264; var inBetween = "How do I get the exact number in between start and end?"; 我尝试跟踪,但它返回的数字不正确 var start=-122.0842499; va

如何将
编号
置于两个编号之间

例如:

var start = 0;
var end = 100;
var inBetween = 50;
在我的情况下,它将类似于:

var start = -122.0842499;
var end = 5.6366264;
var inBetween = "How do I get the exact number in between start and end?";
我尝试跟踪,但它返回的数字不正确

var start=-122.0842499;
var-end=5.6366264;
中间变量=开始+结束/2;

console.log(中间)//Outputs-119.2659367
您正在查找这两个数字的平均值,即

var start = -122.0842499;
var end = 5.6366264;
var inBetween = (start + end) / 2;

话虽如此,如果你真的在使用坐标,正确的方法是@emil的答案。

你在寻找两个数字的平均值,即

var start = -122.0842499;
var end = 5.6366264;
var inBetween = (start + end) / 2;
话虽如此,如果你真的在使用坐标,正确的方法是@emil的答案。

var start=-122.0842499;
var-end=5.6366264;
中间变量=(开始+结束)/2
console.log(中间)
var start=-122.0842499;
var-end=5.6366264;
中间变量=(开始+结束)/2

console.log(中间)
由于它是经度和纬度,
(a+b)/2
不正确。地球不是平的

//-- Define radius function
if (typeof (Number.prototype.toRad) === "undefined") {
    Number.prototype.toRad = function () {
        return this * Math.PI / 180;
    }
}

//-- Define degrees function
if (typeof (Number.prototype.toDeg) === "undefined") {
    Number.prototype.toDeg = function () {
        return this * (180 / Math.PI);
    }
}


function middlePoint(lat1, lng1, lat2, lng2) {

    //-- Longitude difference
    var dLng = (lng2 - lng1).toRad();

    //-- Convert to radians
    lat1 = lat1.toRad();
    lat2 = lat2.toRad();
    lng1 = lng1.toRad();

    var bX = Math.cos(lat2) * Math.cos(dLng);
    var bY = Math.cos(lat2) * Math.sin(dLng);
    var lat3 = Math.atan2(Math.sin(lat1) + Math.sin(lat2), Math.sqrt((Math.cos(lat1) + bX) * (Math.cos(lat1) + bX) + bY * bY));
    var lng3 = lng1 + Math.atan2(bY, Math.cos(lat1) + bX);

    //-- Return result
    return [lng3.toDeg(), lat3.toDeg()];
}

从经纬度上看,
(a+b)/2
不正确。地球不是平的

//-- Define radius function
if (typeof (Number.prototype.toRad) === "undefined") {
    Number.prototype.toRad = function () {
        return this * Math.PI / 180;
    }
}

//-- Define degrees function
if (typeof (Number.prototype.toDeg) === "undefined") {
    Number.prototype.toDeg = function () {
        return this * (180 / Math.PI);
    }
}


function middlePoint(lat1, lng1, lat2, lng2) {

    //-- Longitude difference
    var dLng = (lng2 - lng1).toRad();

    //-- Convert to radians
    lat1 = lat1.toRad();
    lat2 = lat2.toRad();
    lng1 = lng1.toRad();

    var bX = Math.cos(lat2) * Math.cos(dLng);
    var bY = Math.cos(lat2) * Math.sin(dLng);
    var lat3 = Math.atan2(Math.sin(lat1) + Math.sin(lat2), Math.sqrt((Math.cos(lat1) + bX) * (Math.cos(lat1) + bX) + bY * bY));
    var lng3 = lng1 + Math.atan2(bY, Math.cos(lat1) + bX);

    //-- Return result
    return [lng3.toDeg(), lat3.toDeg()];
}


取自

(a+b)/2
?值1+2除以2(仅数学)好的,让我们试试。这看起来像是纬度和longitude@emil很明显,它确实是经度值;)<代码>(a+b)/2?值1+2除以2(只是数学)好的,让我们试试。这看起来像是纬度和longitude@emil很明显,它确实是经度值;)谢谢,就是这个。如果我看看你的雨篷,看起来很容易。对我来说,数学就像语文。我很烂。嗯,有人投了反对票。你能解释一下为什么这个awnser不正确吗?对我来说,它看起来是正确的。@Red我不知道投票人的原因,但这个答案并不复杂:
end-((end-start)/2)
(start+end)/2完全相同,后者是一个非常基本的数学。让我们看看:
end-((end-start)/2)
=
(2*end-end+start)/2
=
(end+start)/2
。我也很想知道其中的复杂性,除非你期待着一些非常大(正)的数字出现问题?这只是第一件突然出现在我脑海中的事情,没有特别的原因。但我觉得太复杂了。谢谢,就是这个。如果我看看你的雨篷,看起来很容易。对我来说,数学就像语文。我很烂。嗯,有人投了反对票。你能解释一下为什么这个awnser不正确吗?对我来说,它看起来是正确的。@Red我不知道投票人的原因,但这个答案并不复杂:
end-((end-start)/2)
(start+end)/2完全相同,后者是一个非常基本的数学。让我们看看:
end-((end-start)/2)
=
(2*end-end+start)/2
=
(end+start)/2
。我也很想知道其中的复杂性,除非你期待着一些非常大(正)的数字出现问题?这只是第一件突然出现在我脑海中的事情,没有特别的原因。但我觉得这太复杂了。谢谢你的awnser。但是,因为它是否协调并不重要,我接受最简单的awnser。我只需要给定值之间的数字。不管协调与否。不过我还是投票支持你的努力。谢谢你的支持。但是,因为它是否协调并不重要,我接受最简单的awnser。我只需要给定值之间的数字。不管协调与否。不过我还是支持你的努力。