[DanoR][Java小码][进制转换::将double转换为不同进制后用String输出]

927 查看

功能简述

进制转换
输入: 一个数(double),目标进制(int)和小数的保留位数(int)
输出: 相应进制的表示方式(String)

参数说明

double    number;      //将要被转换的数
int            ary;             //目标进制
int            accuracy;    //指定小数保留的位数

特性

  • 支持小数转换
    例0: (5.20, 8, 4) --> 5.146314631463146315
  • 可控制输出的小位数
    例0: (5.20, 10, 4) --> 5.3334
    例1: (5.20, 10, 6) --> 5.333334
  • 若有效的小数位比预控制的小数位要小,则按有效小数位输出.
    例0: (5.875, 8, 2) --> 5.7
    例1: (5.875, 8, 3) --> 5.7

代码

pulic class DanoR_Gist001
    public static String HexConvert(double number, int ary, int accuracy)
    {
        int z = (int)number;
        double x = number - z;

        String r = "";

        for(;z>0;z/=ary)
            r = (char)(z%ary>9?z%ary+55:z%ary+48)+r;

        if(x != 0.0)
            r += '.';

        for(int i=0;i<accuracy&&x!=0.0;i++)
        {
            r += (char)((x*=ary)>9?x+55:x+48);
            x -= (int)x;
        }

        return r;
    }
}