java double类型转换为度分秒
java double类型转换为度分秒形式,这种常用于经纬度中,别的不多说直接上代码
public static String dblToLocation(double data) {
StringBuffer result = new StringBuffer();
//得到度
int du = (int) data;
result = result.append(String.valueOf(du) + "°");
//得到分
double du1 = data - du;
int min = (int) (du1 * 60);
result = result.append(String.valueOf(min) + "′");
//得到秒
double min1 = du1 * 60 - min;
int sec = (int) (min1 * 60);
result = result.append(String.valueOf(sec) + "″");
return result.toString();
}
个人记录
/**
* 时间: 2021-9-1
* 10进制 转 弧度 转度 转 角度
*
* @param jz10 10进制数
*/
public static void GiXi(double jz10) {
double width = 8408850;//10进制
System.out.println( "10进制:" + width );
//计算弧度
double s = ( double ) (Math.sin( width / 10000000 * 3.141592653589793d / 180 ) * 900);
System.out.println( "弧度:" + s );
//弧度 转 度。
double data = Math.toDegrees( s );
System.out.println( "度:" + data );
StringBuffer result = new StringBuffer();
//得到度
int du = ( int ) data;
result = result.append( String.valueOf( du ) + "°" );
//得到分
double du1 = data - du;
int min = ( int ) (du1 * 60);
result = result.append( String.valueOf( min ) + "′" );
//得到秒
double min1 = du1 * 60 - min;
int sec = ( int ) (min1 * 60);
result = result.append( String.valueOf( sec ) + "″" );
System.out.println( "角度:" + result.toString() );
// 度 转 弧度。
double toRadians = Math.toRadians( data );
System.out.println( "弧度。:" + toRadians );
//转10进制
double zz = ( double ) (Math.asin( toRadians / 900 ) * 10000000 / 3.141592653589793d * 180);
//常用四舍五入
zz = Math.round( zz );
System.out.println( "十进制数:" + zz );
//double jiaodu = b * 180.0f / Math.PI;//弧度转角度
//double hudu = strdouble * Math.PI / 180.0f;//角度转弧度
}