java数值类型精度问题,求救高手,高手请进,瞎说的走开!

publicclassTestMth{publicstaticvoidmain(String[]args){inti=7/3;floatf=7/3;doubled=7/3... public class TestMth {
public static void main(String[]args){
int i=7/3;
float f=7/3;
double d=7/3;
System.out.println(i);
System.out.println(f);
System.out.println(d);
}
}
//为啥运行结果是:
2
2.0
2.0
为啥不是
2
2.33333333333333333333333333333333……
2.33333333333333333333333333333333……
要想得到这样的结果怎么办?
展开
 我来答
Jseven_jy
2010-08-23 · TA获得超过8122个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1128万
展开全部
java中..直接书写整数..那么他的类型是int..

直接书写小数他的类型是double..

java中..运算式结果的类型..是该运算式中..类型范围最大的..

比如..int + long结果就是long类型..因为long类型范围比int大..这样结果才不会损失精度..

你题目中..

7是int..3也是int..

所以7/3也是int..并且值是2..因为7/3等于2点几..转成int就把小数切掉..所以是2..

所以
int i=7/3;//相当于是把2赋值给一个int类型的变量i
float f=7/3;//相当于是把2转换成float变成2.0赋值给一个float类型的变量f
double d=7/3;//相当于是把2转换成double变成2.0赋值给一个double类型的变量d

明白了么..

所以要想达到你要的效果..

float f=7/3;
double d=7/3;
这两个里面就需要把7或者3转成float或者double再计算机..这样计算结果就是float或者double..就不会切掉小数了..

即改成
float f=7/3f;//java中float数据就是在数字后面加个f或者F表示这个数是float类型
double d=7/3.0;//直接加个.0就是double了..也可以(double)7/3..就是把7转成double再计算..

希望能帮到你..
我今天上课了
2010-08-23 · TA获得超过1410个赞
知道小有建树答主
回答量:844
采纳率:0%
帮助的人:674万
展开全部
7和3都是int,7/3也是默认int,你在赋值给double和float的d,结果自然是2.0

你想要得到那样的结果必须让7/3是float或double
如 double d=(double)7/3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
S_Kr
2010-08-23 · TA获得超过616个赞
知道小有建树答主
回答量:620
采纳率:100%
帮助的人:493万
展开全部
f = 7.0f/3.0f;
d = 7.0/3.0;
因为3/7首先是3/7是int之间的计算算出来int值以后再转化为float或double
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhanliang1217
2010-08-23 · TA获得超过460个赞
知道小有建树答主
回答量:683
采纳率:0%
帮助的人:398万
展开全部
数据类型问题
public class TestMth {
public static void main(String[]args){
int i=7/3;
float f=7.0f/3;
double d=7.0/3;
System.out.println(i);
System.out.println(f);
System.out.println(d);
}
}

在java里,6.0算double类型,所以float要强转类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友04c4bb0e1
2010-08-23 · TA获得超过443个赞
知道小有建树答主
回答量:1302
采纳率:0%
帮助的人:763万
展开全部
因为 7 / 3是整形 所以 除出来时整形

你要把 7 和3 转换为double 再除就是浮点的了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式