我在这里遇到问题,日食无法在我的代码源中识别出Decimal类型!我尝试创建一个工具,使我可以将小数坐标转换为分钟和秒!如果您对此有任何了解,请帮助我!!
public class GeolocationDecimalToDegreesConverter{
public static String convert(Decimal latitude, Decimal longitude){
return convertLatitud(latitude) + ' ' + convertLongitude(longitude);
}
public static String convertLatitud(Decimal latitude){
String result = "" ;
if(latitude != null){
String direction = "N";
if(latitude < 0){
direction = "S";
}
result = convert(latitude) + direction;
}
return result;
}
public static String convertLongitude(Decimal longitude){
String result = "";
if(longitude != null){
String direction = "E";
if(longitude < 0){
direction = "W";
}
result = convert(longitude) + direction;
}
return result;
}
private static String convert(Decimal d){
d = d.abs();
//degrees
Integer i = d.intValue();
String s = String.valueOf(i) + '°';
//minutes
d = d - i;
d = d * 60;
i = d.intValue();
s = s + String.valueOf(i) + '\'';
//seconds
d = d - i;
d = d * 60;
i = d.round().intValue();
s = s + String.valueOf(i) + '"';
return s;
}
}
请一些解决方案
答案 0 :(得分:1)
Java中没有内置的Decimal
类型。
Ctrl-Shift-O
组织导入。或者该代码完全无效。我敢打赌,因为我无法想象latitude < 0
适用于某些第三方Decimal
类型。
解决方案很简单:只需使用java.math.BigDecimal
即可。您无法进行myBigDecimal < 0
,但有足够的API来处理您需要的任何数学运算。