我尝试将我的双数转换为十进制。每次我烤我四舍五入的数字时,都会显示“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();
最佳答案
您没有正确使用DecimalFormat
。这个想法并不是将 DecimalFormat
对象本身转换为字符串,就像您在这里所做的那样:
ln2 + " " + la2
...这是您调用format
并使用返回值。
(当前您正在调用 format
但忽略返回值,这使其毫无用处。)
所以你想要:
ln2.format(ln) + " " + la2.format(la)
您可能想要更多,但这是当前代码中最基本的问题。
关于java - 小数格式四舍五入到小数点后 4 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399919/