3 回答
TA贡献1820条经验 获得超10个赞
DF.format(lat)
正在返回 a String
,您无法将 a 格式化Double
为您想要的任何内容。
double不能包含所有尾随零,例如:
System.out.println((double) 1.0000); //Will print 1.0
要将它打印到任何你想要的东西,你必须将它打印为一个字符串:
System.out.println("1.0000"); //Will print 1.0000
这就是为什么.format
返回 aString
而不是 double 的原因。
将最后一行更改为:
String latlast = DF.format(lat);
编辑:如果您想将小数位截断为 6 位数字,请改用此方法。
double lat = (latPoint * 180.0 / Math.PI); double latFloor = Math.floor(lat * 1000000) / 1000000; //6 decimal places
TA贡献1780条经验 获得超1个赞
DecimalFormat.format(double val)回报String,不是Double。
double lat = (latPoint * 180.0 / Math.PI);
DecimalFormat DF = new DecimalFormat("#.########");
String latlast = DF.format(lat);
TA贡献1821条经验 获得超4个赞
如果你想将 double 格式化为 double 并满足一些要求,那么你可以再次转换它,因为
double lat = (latPoint * 180.0 / Math.PI);
DecimalFormat format = new DecimalFormat("#.####");
String format1 = format.format(ad);
此代码将格式化的双精度返回到字符串形式。
所以你必须用这个再次将它转换成双倍
double number = Double.parseDouble(format1);
添加回答
举报