接受一个double型参数,转换成CHAR型,在前面补0,补足8位
比如说1.1则在前面补6个0    0000001.1
23.3在前面补5个0       就是 0000023.3
为什么下面这样写输出结果不对?class DoubleToChar
{
public static char convert(double num)
{
double temp = num;
String str = "00000000" + String.valueOf(temp);
str = str.substring(str.length() - 8);
char a = (char)Double.valueOf(str).doubleValue();
return a;
} public static void main(String[] args)
{
System.out.println(DoubleToChar.convert(1.23));
}}

解决方案 »

  1.   

    public static String convert(double num)
    {
    double temp = num;
    String str = "00000000" + String.valueOf(temp);
    str = str.substring(str.length() - 8);
    return str;
    }
      

  2.   

    这样是不行的,char只能存一个字符,你可以把返回类型改为string,这样更合适
      

  3.   

    public static String convert(double num) {
        return new DecimalFormat("00000000.00").format(num);
            
    }
      

  4.   

    但是,楼主写的也有错的.
    如,
    double dd=123456.789;
    用楼主的方法是不是会得到23456.789呢?——假如小数点不算长度的话:)再,
    一般做这种格式化,都是小数点后定长,前面补0的吧:如4楼所示
    楼主是不是理解错了哪里的意思呀