Javascript 度分秒是一种十分常见的数值计算方式,可以将一个角度数值表示为度、分、秒三部分,其实现方式也比较简单。例如将一个角度数值60度23分46秒转化为小数:60+23/60+46/3600=60.39611111。而将一个小数角度值转化为度分秒也很简单,可以将小数部分先乘60得到分数部分,再将小数部分乘60得到秒数部分。因此,本文将详细介绍Javascript 度分秒的实现方法。
在Javascript中,要将一个角度值表示为度分秒方式,需要先将角度值转化为小数,然后再将小数转化为度分秒的形式。下面是将一个小数角度值转化为度分秒的代码:
function toDMS(decimal){ var degrees = Math.floor(decimal); var minutes = Math.floor((decimal - degrees) * 60); var seconds = ((decimal - degrees - minutes/60)*3600).toFixed(2); return degrees + "°" + minutes + "'" + seconds + '"'; } console.log(toDMS(60.39611111)); //"60°23'46.00""上面的代码中,首先利用Math.floor()函数得到角度值的整数部分作为度数部分,然后利用相减的方式求得小数部分,进一步乘60得到分数部分,最后利用toFixed()函数将小数部分保留两位得到秒数部分。最后通过字符串拼接的方式返回一个度分秒字符串。 下面是将一个度分秒字符串转化为小数角度值的代码:
function toDecimal(DMS){ var pattern = /(\d+)°(\d+)'([\d\.]+)"/; var match = pattern.exec(DMS); var degrees = parseInt(match[1]); var minutes = parseInt(match[2]); var seconds = parseFloat(match[3]); return degrees + (minutes/60) + (seconds/3600); } console.log(toDecimal("60°23'46.00"")); //60.39611111上面的代码中,首先定义了一个正则表达式模式,用于匹配度分秒字符串。接着利用exec()函数得到匹配结果,然后通过parseInt()和parseFloat()函数将度分秒字符串转化为度分秒数值。最后将度分秒数值相加得到小数角度值。 至此,我们已经完成了Javascript 度分秒的实现。需要注意的是,在转化为度分秒的过程中,小数部分可能不精确,需要使用round()、ceil()或toFixed()之类的函数进行精度控制。同时,在转化为小数角度值的过程中,正则表达式的匹配结果也需要进行容错处理,以避免程序出现异常。