0

我想显示最多 6 位小数的 GPS 坐标。例如,如果我的 GPS 位置是x.yyyyyyyyyy我想要显示x.yyyyyy的,为此我使用DecimalFormat类。但是,如果数字是 like 8.3456709012,则以下代码的输出就像8.34568

_yPos = 8.3456709012;
DecimalFormat decimalFormat = new DecimalFormat("#.######");
String yCoord = decimalFormat.format(_yPos);

而预期的输出是8.345670。任何人都可以告诉我这样做的方法吗?

4

3 回答 3

3

用作"0.000000"格式化代码。

字符 # 用于“数字,零表示不存在”:http ://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html

DOWN此外,如果您真的想要输出,则必须将舍入模式设置8.3456708.345671

DecimalFormat decimalFormat = new DecimalFormat("0.000000");
decimalFormat.setRoundingMode(java.math.RoundingMode.DOWN);
于 2012-04-24T07:12:11.410 回答
2

Joni Salonen 的回答建议您如何保留尾随零,但坐标仍将是半舍入,因为默认舍入模式是 RoundingMode.HALF_EVEN。

您可以使用设置舍入模式

decimalFormat.setRoundingMode(RoundingMode.DOWN);

此方法从 1.6 开始可用

参考http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html#setRoundingMode%28java.math.RoundingMode%29

于 2012-04-24T07:14:42.170 回答
1

是不是新的 DecimalFormat("#.#####0") ?

http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

于 2012-04-24T07:11:58.913 回答