帮我看一下JAVA程序,哪错了

[复制链接]
查看11 | 回复0 | 2009-1-30 06:28:38 | 显示全部楼层 |阅读模式
String hours="1.51";
那怎么得到整数部分1和小数部分0.51?============================================shuzi db=new shuzi("1.51");
int i=(int)db.shuzivalue(); double f=db.shuzivalue()-i;为什么不可以而下面的这个可以运行呢Double db = new Double("1.51");
int i = (int)db.doubleValue();
double f = db.doubleValue() - i;shuzi是我定义的一个类-------------------------------------------这是我编的,为什么不对public class shuzi {                public static void main(String[] args) {                        shuzi db=new shuzi("1.51");
int i=(int)db.shuzivalue(); double f=db.shuzivalue()-i;
System.out.println("x="+i+","+"f="+f);        }}

                                                                                                水若寒冰 你好: 首先我告诉你分隔字符串需要用到java.util.StringTokenizer; 一.new一个StringTokenizer对象 StringTokenizer token=new StringTokenizer(待分隔的字符串,"设定分隔符"); 二 利用StringTokenizer的nextToken()方法依次取值; 你可以参考一下Java SE的API中的java.util包的StringTokenizer类;仔细阅读一下这个类的方法; 愿你有成                                       
提问者对答案的评价:

                                                                                                int i=(int)db.shuzivalue(); 先不说你的shuzivalue()方法是怎么写的,(int)就是错误的,int是基本数据类型,不支持强制类型转换的你可以考虑(Integer)或者(Integer.valueOf)                                       

                                                                                                水若寒冰,你好:Double是java。lang中的一个类他提供了构造器 Double(String s)以及方法doubleValue();如果你自己编写的class shuzi,如果没有构造器shuzi(String s) 的话在调用shuzi db=new shuzi("1.51"); 会报错,如果没有提供方法shuzivalue(); ,则在调用db.shuzivalue(); 会报错。至于梦幻天空号的说法(int)并不是完全是错误的,在基本数据类型间,如double,float转int可以用这个方法。如果从类中确实是不可以强制类型转换的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行