站内搜索: 请输入搜索关键词

当前页面: JAVA 编程资料牛鼻论坛Java & J2SE 技术区→帮我看一下JAVA程序,哪错了

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

发表新主题   回复此主题

第1楼 2007-07-24 18:43 水若寒冰 写道:

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

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);
}

}

第2楼 2013-08-31 12:44 Robot :

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


第3楼 2007-07-25 00:20 蓝色嫁衣 写道:

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

第4楼 2007-07-25 13:08 梦幻天空号 写道:

int i=(int)db.shuzivalue();

先不说你的shuzivalue()方法是怎么写的,(int)就是错误的,int是基本数据类型,不支持强制类型转换的

你可以考虑(Integer)或者(Integer.valueOf)

第5楼 2007-08-02 12:16 金色天空 写道:

水若寒冰,你好:
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可以用这个方法。如果从类中确实是不可以强制类型转换的。

发表新主题   回复此主题