在将经度/纬度设置为api的正确格式时遇到问题,我们无权访问。
我们需要将其转换为字符串,目前我们有:4.30044549E7 作为原始形式,但我们需要将其转换为4.30044549或类似(没有科学记数法)
如果我们使用
NumberFormat f = new DecimalFormat("#.#######");
f.format(4.30044549E7);
我们得到:43004454.9
如果我们使用
Double.toString(4.30044549E7);
我们得到:“4.30044549E7”
如果我们尝试转换为int,我们也会得到43004454.9
有人可以帮忙吗?我无法找到一个可接受的解决方案来摆脱数字
的科学记数法答案 0 :(得分:3)
如果你真的问过我的想法,你可以简单地将数字除以10,直到达到你想要的格式。
double value = 4.30044549E7;
while(value > 10 || value < -10){
value /= 10;
}
System.out.println(String.format("%.8f", value)); //4.30044549
答案 1 :(得分:2)
您是否尝试过format
?
String.format("%.10f",doubleValue);
它将在点后10位数格式化您的数字。
1e-5 -> 0.000010000
1e5 -> 100000.0000000000
答案 2 :(得分:1)
你永远不能将4.30044549E7“格式化”为4.30044549,因为它们不一样。
4.30044549E7实际上是43004454.9所以想要格式化程序显示那个双精度为4.30044549是一个奇怪的问题