java - 小数格式四舍五入到小数点后 4 位

标签 java decimalformat

我尝试将我的双数转换为十进制。每次我烤我四舍五入的数字时,都会显示“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/

相关文章:

java - 应用程序被强制关闭,因为 Decimal Formatter

java - 为什么我的 DecimalFormat 在 Java 中不能处理 2 位小数?

java - 使用 Rome 访问附件内容

java - 如何为特定的url启用spring security

java - eclipse 插件 : How to programmatically select text in editor?

java - 在 Java 中调用逆变方法

Java MulticastSocket 导致空指针异常

java - 带有千位分隔符 0 值的 DecimalFormatter 返回 .00

java - 将输入文本值传递给 DecimalFormat 时出错

Java十进制格式格式错误