我想显示最多 6 位小数的 GPS 坐标。 例如,如果我的 GPS 位置类似于 x.yyyyyyyyyy
我想显示x.yyyyyy
,为此我使用DecimalFormat
类。但是,如果数字类似于 8.3456709012
,则以下代码的输出类似于8.34568
_yPos = 8.3456709012;
DecimalFormat decimalFormat = new DecimalFormat("#.######");
String yCoord = decimalFormat.format(_yPos);
而预期输出为 8.345670
.谁能告诉我一种方法?
使用 "0.000000"
作为格式代码。
字符 # 表示"数字,零显示为不存在":http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html
此外,如果您确实想要输出8.345670
而不是8.345671
,则必须将舍入模式设置为 DOWN
:
DecimalFormat decimalFormat = new DecimalFormat("0.000000");
decimalFormat.setRoundingMode(java.math.RoundingMode.DOWN);
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
isent it new DecimalFormat("#.#####0") ?
http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html