class CCalculator{
int a,b,c;
void set_value(int x,int y,int z){
a=x;
b=y;
c=z;
}
void show(){
System.out.println("a="+a+" b="+b+" c="+c);
}
int add(){
return a+b+c;
}
int sub(){
return a-b-c;
}
int mul(){
return a*b*c;
}
int avg(){
return (a+b+c)/3;
}
}
public class p_155_10 { /**
* @param args
*/
public static void main(String[] args) {
CCalculator obj=new CCalculator();
obj.set_value(3, 4, 1);
int x=4,y=3;
System.out.println("x*y="+x*y);
System.out.println("x/y="+x/y+" x/y="+(double)x/y);
System.out.println("add="+obj.add()+" sub="+obj.sub()+" mul="+obj.mul()+" avg="+(double)obj.avg());//这里为何没有从int转换成double呢?
// TODO 自动生成方法存根 }}
求高手解答,不甚感激!
int a,b,c;
void set_value(int x,int y,int z){
a=x;
b=y;
c=z;
}
void show(){
System.out.println("a="+a+" b="+b+" c="+c);
}
int add(){
return a+b+c;
}
int sub(){
return a-b-c;
}
int mul(){
return a*b*c;
}
int avg(){
return (a+b+c)/3;
}
}
public class p_155_10 { /**
* @param args
*/
public static void main(String[] args) {
CCalculator obj=new CCalculator();
obj.set_value(3, 4, 1);
int x=4,y=3;
System.out.println("x*y="+x*y);
System.out.println("x/y="+x/y+" x/y="+(double)x/y);
System.out.println("add="+obj.add()+" sub="+obj.sub()+" mul="+obj.mul()+" avg="+(double)obj.avg());//这里为何没有从int转换成double呢?
// TODO 自动生成方法存根 }}
求高手解答,不甚感激!
解决方案 »
- PriorityQueue先进先出吧?
- main 方法所在的类一定需要实例化吗?
- 两个问题:class文件都产生了却不能用java执行;jdbc连接sql server
- 关于学习过程中遇到的问题
- 200分 请教: 按行读文件,每一行中以TAB分隔各个字段,有些字段是中文.在线等待
- 请问关于路径设置的问题
- 在同一目录下的两个java文件连不起来
- 请教makefile的使用方法。
- 用InstallAnywhere3.5 打包的安装程序,安装成功后,运行其可执行文件报错,见内~~请问原因,解决30分~!
- java中模拟键盘,然后输入内容
- 求助啊,十万火急的面试题,关于FOR循环,高手帮帮忙,谢谢
- 下载 JavaSE 6 API 中英文档(CHM格式)
x/y=1 x/y=1.3333333333333333
add=8 sub=-2 mul=12 avg=2.0
转了,你在试试
return (a+b+c)/3;
}
我想把这个方法里面的结果转换成double类型的。或者说这个方法如何修改,才能得到有小数结果?return double(a+b+c)/3;
这样不行?
建议写成(a+b+c)/3.0;
试试看,我没有放到代码中试,你先看看,回头我再来。
楼主:是不是就想把avg()方法返回值改成double类型的啊!呵呵!
那楼主,我们接下来先说一下,概念部分,在java概念里,虽然没自动装箱,和拆箱的概念,其实我们也可以理解成这样。
低精度的数据类型转换成高精度的数据类型,无需进行强转转换如下所示: int x=1;
double y=x; 反过来:高精度的数据类型转换成低精度的数据类型,就必须要强转了。如下所示: double x=1.0;
int y=(int)x;
注意:大数据类型转小数据类型,会丢失精度的哦!
接下来看看楼主的:就不难明白了! 楼主只需将计算好的结果转成,你需要的数据类型即可,但特别友好提示一下:需要类型兼容哦!double avg() {
return (a + b + c) / 3;
}
x/y=1 x/y=1.3333333333333333
add=8 sub=-2 mul=12 avg=2.0
这是我运行后的结果,结果已经是double型的了啊如果你想把add sub mul的结果也弄成double型的话 还是要像avg那样转下型就可以了啊 或者直接在方法里返回double型的
double avg(){
return (a+b+c)/3.0;}
二:改正后的
double avg(){
return (double)(a+b+c)/3;
}
int a,b,c;
void set_value(int x,int y,int z){
a=x;
b=y;
c=z;
}
void show(){
System.out.println("a="+a+" b="+b+" c="+c);
}
int add(){
return a+b+c;
}
int sub(){
return a-b-c;
}
int mul(){
return a*b*c;
}
double avg(){//写方法时返回类型变成double就行了
return (double)(a+b+c)/3;
}
}
public class Suilian { /**
* @param args
*/
public static void main(String[] args) {
CCalculator obj=new CCalculator();
obj.set_value(3, 4, 1);
int x=4,y=3;
System.out.println("x*y="+x*y);
System.out.println("x/y="+x/y+" x/y="+(int)x/y);
System.out.println("add="+obj.add()+" sub="+obj.sub()+" mul="+obj.mul()+" avg="+obj.avg());//这里为何没有从int转换成double呢?
// TODO 自动生成方法存根 }}