在 java 中的点后得到 7 位数

get 7 digit after point in java

我想要一个整数除后的七位数字,我有 ddhh.mmmmm lat long 我必须将它 dd.(hhmmmm/60) 转换为点后的 7 位数字。

我的代码:

public static String getCoordinates(String data) {
        System.out.println(data);
        String mm = data.substring(2).replace(".", "");
        int int_mm = Integer.parseInt(mm);
        double d_mm = int_mm / 60.00000000;
        String s_mm = Double.toString(d_mm);
        s_mm = s_mm.replace(".", "");
        String s_dd = data.substring(0, 2);
        return s_dd + "." + s_mm;
    }

Input
2838.9544
Output
28.64924

Input
7716.7731
Output
77.2795516666666667

两个相同的输入但不相同我该如何解决?

你可以这样做:

Double result=Double.parseDouble(s_dd + "." + s_mm);
NumberFormat formatter = new DecimalFormat("#0.000000");  
return formatter.format(result);   
java.math.BigDecimal

在 java 中,您的问题有以下未来。

double d = Double.valueOf(152452+"."+45545545);
BigDecimal bd = BigDecimal.valueOf(d);
bd = bd.setScale(7, RoundingMode.CEILING);

在此示例中,bd 等于 152452.4554555