在 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
我想要一个整数除后的七位数字,我有 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