2014-09-29 72 views
-1

我有一个公式,DMS GPS坐标转换为十进制度,Math.trunc问题或不正确使用

但是我想赖特它JS,但没有工作,

测试过程中我注意到, “经纬度”的价值观是否正确被拆分,但一旦我尝试使用Math.trunc它只是停止提供数据

下面是函数:

function convertdec() { 
var input1 = document.getElementById('latlng').value; 
var latlongc = input1.split(',' ,2); 
var latdeg1 = Math.trunc(parseInt(latlngc[0])); 
var latmin1 = Math.trunc((parseInt(latlngc[0])-latdeg1)*60); 
var latsec1 = (((parseInt(latlngc[0])-latdeg1)*60)-latmin1)*60; 
var longdeg1 = Math.trunc(parseInt(latlngc[1])); 
var longmin1 = Math.trunc((parseInt(latlngc[1])-longdeg1)*60); 
var longsec1 = (((parseInt(latlngc[0])-latdeg1)*60)-longmin1)*60; 

document.getElementById('deg1').value = latdeg1; 
document.getElementById('min1').value = latmin1; 
document.getElementById('sec1').value = latsec1; 
document.getElementById('deg2').value = longdeg1; 
document.getElementById('min2').value = longmin1; 
document.getElementById('sec2').value = longsec1; 

} 

布局是正确公式但显然不是为脚本

请帮助解释我在做什么错

+1

'Math.trunc()'是所提出的ECMA 6和不支持的部分在所有浏览器中。你应该检查你的浏览器错误控制台或调试控制台,看看'Math.trunc()'是否存在,并导致你的问题。你可以看看'Math.floor()'作为替代方案(具体取决于你想要做什么)。 – jfriend00 2014-09-29 10:13:43

+0

发现一个问题,var latlongc应该是latlngc – 2014-09-29 10:26:03

+0

为什么你试图截断整数呢? – Bergi 2014-09-29 10:52:46

回答

0

固定它

function convertdec() { 
var input1 = document.getElementById('latlng').value; 
var latlngc = input1.split(',' ,2); 
var latdeg1 = Math.floor(parseInt(latlngc[0])); 
var latmin01 = (latlngc[0]-latdeg1)*60; 
var latmin1 = Math.floor(latmin01); 
var latsec01 = (latmin01-latmin1); 
var latsec1 = latsec01*60; 
var longdeg1 = Math.floor(parseInt(latlngc[1])); 
var longmin01 = (latlngc[1]-longdeg1)*60; 
var longmin1 = Math.floor(longmin01); 
var longsec01 = (longmin01-longmin1) 
var longsec1 = longsec01*60 


document.getElementById('deg1').value = latdeg1; 
document.getElementById('min1').value = latmin1; 
document.getElementById('sec1').value = latsec1; 
document.getElementById('deg2').value = longdeg1; 
document.getElementById('min2').value = longmin1; 
document.getElementById('sec2').value = longsec1; 

}