Java double type conversion to degrees minutes seconds

Java double type conversion to degrees minutes seconds

The java double type is converted to the form of degrees, minutes, and seconds. This is often used in latitude and longitude. Not much else to say directly to the code

   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();
    }

personal records

 /**
     * 时间: 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;//角度转弧度
    }  

Guess you like

Origin blog.csdn.net/ZQ200720/article/details/120043831