java为什么Android DecimalFormat找到字符串值?
我在Anroid工作室使用DecimalFormat。我有一个双精度值,我想判定格式。但是,当我以十进制形式给出双值时;他们说:“找到字符串值”。但是,它是一个双重值。我尝试转换为字符串,但它不工作。我能做什么
double lat = (latPoint * 180.0 / Math.PI);
DecimalFormat DF = new DecimalFormat("#.########");
Double latlast = DF.format(lat);
# 1 楼答案
DecimalFormat.format(double val)
返回String
,而不是Double
# 2 楼答案
DF.format(lat)
正在返回一个String
,您不能将Double
格式化为任何您想要的格式双精度不能保留所有尾随零,例如:
要将其打印为所需的任何内容,必须将其打印为字符串:
这就是
.format
返回String
而不是双精度的原因将最后一行更改为:
String latlast = DF.format(lat);
编辑:如果要将小数位截断为6位,请尝试此操作
# 3 楼答案
如果您想将double格式转换为double格式并满足某些要求,那么您可以再次转换它,因为
这段代码将格式化的double返回为字符串形式
所以你必须用这个把它再次转换成double