Geotools 小数位
Geotools decimal places
我正在使用 geotools.js 将 OS 网格参考转换为纬度和经度。不幸的是,默认情况下(我相信)输出限制为小数点后两位。我需要它是小数点后 5 位以获得更准确的读数。
我曾尝试删除我自己的代码中对小数位的任何引用,还查看了 geotools.js 文件以查看我可以在哪里更改它,但我不够聪明,无法弄清楚!
var osgb = new GT_OSGB();
if (osgb.parseGridRef(gridref)) {
var wgs84=osgb.getWGS84();
var lat = parseFloat(Math.round(wgs84.latitude * 100) / 100).toFixed(5);
var long = parseFloat(Math.round(wgs84.longitude * 100) / 100).toFixed(5);
var latlong = lat+','+long;
}
虽然在上面的代码中我已经将十进制值从 2 更改为 5,但所发生的只是小数位被零填充。所以我会得到 2 个十进制值,然后是 3 个零。请问有人知道怎么修改吗?
因为Math.round(1.783895237647 * 100)
会导致178
。将其除以 100 不会神奇地恢复丢失的精度。
var lat = parseFloat(Math.round(wgs84.latitude * 100) / 100).toFixed(5);
var long = parseFloat(Math.round(wgs84.longitude * 100) / 100).toFixed(5);
应该是
var lat = parseFloat(wgs84.latitude).toFixed(5);
var long = parseFloat(wgs84.longitude).toFixed(5);
我正在使用 geotools.js 将 OS 网格参考转换为纬度和经度。不幸的是,默认情况下(我相信)输出限制为小数点后两位。我需要它是小数点后 5 位以获得更准确的读数。
我曾尝试删除我自己的代码中对小数位的任何引用,还查看了 geotools.js 文件以查看我可以在哪里更改它,但我不够聪明,无法弄清楚!
var osgb = new GT_OSGB();
if (osgb.parseGridRef(gridref)) {
var wgs84=osgb.getWGS84();
var lat = parseFloat(Math.round(wgs84.latitude * 100) / 100).toFixed(5);
var long = parseFloat(Math.round(wgs84.longitude * 100) / 100).toFixed(5);
var latlong = lat+','+long;
}
虽然在上面的代码中我已经将十进制值从 2 更改为 5,但所发生的只是小数位被零填充。所以我会得到 2 个十进制值,然后是 3 个零。请问有人知道怎么修改吗?
因为Math.round(1.783895237647 * 100)
会导致178
。将其除以 100 不会神奇地恢复丢失的精度。
var lat = parseFloat(Math.round(wgs84.latitude * 100) / 100).toFixed(5);
var long = parseFloat(Math.round(wgs84.longitude * 100) / 100).toFixed(5);
应该是
var lat = parseFloat(wgs84.latitude).toFixed(5);
var long = parseFloat(wgs84.longitude).toFixed(5);