这个程序输出结果为什么不对

kinsey0514 2006-11-20 03:29:54
接受一个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));
}

}
...全文
236 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
finalcreator 2006-11-20
  • 打赏
  • 举报
回复
好呀。。。。呵呵呵
ly342540479 2006-11-20
  • 打赏
  • 举报
回复
format函数
malligator 2006-11-20
  • 打赏
  • 举报
回复
但是,楼主写的也有错的.
如,
double dd=123456.789;
用楼主的方法是不是会得到23456.789呢?——假如小数点不算长度的话:)

再,
一般做这种格式化,都是小数点后定长,前面补0的吧:如4楼所示
楼主是不是理解错了哪里的意思呀
malligator 2006-11-20
  • 打赏
  • 举报
回复
汗,看错要求了


好象没有符合楼主要求的现成!
malligator 2006-11-20
  • 打赏
  • 举报
回复
楼上正解!

用现成的好呀
dreamover 2006-11-20
  • 打赏
  • 举报
回复
public static String convert(double num) {
return new DecimalFormat("00000000.00").format(num);

}
s_topman 2006-11-20
  • 打赏
  • 举报
回复
楼上正解
s_topman 2006-11-20
  • 打赏
  • 举报
回复
这样是不行的,char只能存一个字符,你可以把返回类型改为string,这样更合适
mtou 2006-11-20
  • 打赏
  • 举报
回复
public static String convert(double num)
{
double temp = num;
String str = "00000000" + String.valueOf(temp);
str = str.substring(str.length() - 8);
return str;
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧