精确计算-整数相除

来源:互联网 发布:品茗BIM软件 编辑:程序博客网 时间:2024/04/30 18:48

public String div( int dividend, int divisor, int scale )
    {
        int point = String.valueOf (dividend / divisor ).length();
        StringBuffer res = new StringBuffer();
        int origion_divisor = divisor;
        while ( dividend != 0 && scale + point > 0 ) {
            int quotient = 9;
            while ( 9 * divisor < dividend )
                divisor *= 10;

            while ( quotient * divisor > dividend )
                quotient--;

            dividend -= quotient * divisor;
            res.append( quotient );

            scale--;
            dividend *= 10;

            divisor = origion_divisor;
        }
        res.insert( point, "." );

        return res.toString();
    }

1,3,20 返回:0.33333333333333333333

原创粉丝点击