求JAVA经纬度转换代码

现用公式:如22°32.7658′,(22*60+32.7658)*30000=40582974。JAVA代码实现:把57335948转换成小数点表示的纬度(如:XX.X... 现用公式:如22°32.7658′,(22*60+32.7658)*30000 = 40582974。
JAVA代码实现:
把 57335948 转换成小数点表示的纬度(如:XX.XXXX)
展开
 我来答
tina_77f
2011-09-28 · TA获得超过107个赞
知道答主
回答量:18
采纳率:0%
帮助的人:24.9万
展开全部
由于键盘上没有 ° 键,所以我在程序中把它换成 * 键了。
运行下面程序,从控制台输入 40582974 ,回车 ,输出结果:22*32.7658′

输入:57335948

输出:31*51.1983'

import java.math.BigDecimal;
import java.util.Scanner;

public class LatitudeTransform {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
String in = sca.nextLine();
//将控制台接收到的输入转成数字
long num = Long.parseLong(in);
//利用整除舍弃余数得到度数值
long du = (num / 30000) / 60;
//将控制台接收到的数值除以30000,得到度和分的混合结果,再对60取余,得到分的部分
BigDecimal fen = new BigDecimal(num).divide(new BigDecimal(30000), 4, BigDecimal.ROUND_HALF_UP).remainder(
new BigDecimal(60));
System.out.println(du + "*" + fen + "'");
}
}

下面的部分是,在控制台输入22°32.7658′ ,回车得到40582974。开始的时候读你的问题理解反了,所以先写的这个,也给你吧,要是没用就算了~呵呵。

import java.util.Scanner;

public class LatitudeTransform {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
String in = sca.nextLine();
String result = transform(in);
System.out.println(result);

}

private static String transform(String in) {
//将输入的字符串分成两截,分别为度数du_string,分数fen_string
String du_string = in.substring(0, in.indexOf("*"));
//substring方法两个参数遵循规则"前包含后不包含",例,”1234“.substring(0,2)返回的结果是index为0到1的子串,即"12"
String fen_string = in.substring(in.indexOf("*") + 1, in.indexOf("'"));

double du = Double.parseDouble(du_string);
double fen = Double.parseDouble(fen_string);

Long result = (long) ((du * 60 + fen) * 30000);
return result.toString();
}

}
shenaodong
推荐于2016-03-19 · TA获得超过960个赞
知道小有建树答主
回答量:868
采纳率:0%
帮助的人:801万
展开全部
public void trans() {
// 如22°32.7658′,(22*60+32.7658)*30000 = 40582974。
long val = 40582974;
double dblVal = val / 30000.0;
int intVal = (int) (dblVal / 60);
System.out.println(intVal);
float fltVal = (float) (dblVal - intVal * 60);
System.out.println(fltVal);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2011-09-28 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
这个结果很不一定哦。除非确定前面的22
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式