我试图将我的双数转换成十进制数。每当我敬酒我已经舍入的数字时,会显示“java.text.decimalformat @ 0java.text.decimalformat @ 0”。这是我的代码。希望你能帮我解决一下我的数字。
gps = new GPSTracker(Test.this);
double lat = gps.getLatitude();
DecimalFormat lat2 = new DecimalFormat();
lat2.setMaximumFractionDigits(4);
lat2.format(lat);
double lng = gps.getLongitude();
DecimalFormat lng2 = new DecimalFormat();
lng2.setMaximumFractionDigits(4);
lng2.format(lng);
super.onCreate(savedInstanceState);
setContentView(R.layout.abc);
Bundle extras = getIntent().getExtras();
String ItemChosen = extras.getString("s");
String latIndex = extras.getString("latt");
double la = Double.parseDouble(latIndex);
DecimalFormat la2 = new DecimalFormat();
la2.setMaximumFractionDigits(4);
la2.format(la);
String lngIndex = extras.getString("lng");
double ln = Double.parseDouble(lngIndex);
DecimalFormat ln2 = new DecimalFormat();
ln2.setMaximumFractionDigits(4);
ln2.format(ln);
Toast.makeText(getApplicationContext(),ln2 + " " + la2,
Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(),lng2 + " " + lat2,
Toast.LENGTH_LONG).show();
答案 0 :(得分:4)
您没有正确使用DecimalFormat
。这个想法不是你将DecimalFormat
对象本身转换为字符串,就像你在这里做的那样:
ln2 + " " + la2
...您致电format
并使用返回值。
(目前你正在调用format
,但忽略了返回值,这使得它无用。)
所以你想要:
ln2.format(ln) + " " + la2.format(la)
您可能需要更多,但这是您当前代码中最基本的问题。