java作业求解答————

编写一个类含有下列代码,编译执行后理解浮点与双精度变量类型转换。floatf=10.0f;doubled=100.0d;f=d;System.out.println("f... 编写一个类含有下列代码,编译执行后理解浮点与双精度变量类型转换。
float f=10.0f;
double d=100.0d;
f=d;
System.out.println("f="+f);
老师出的题根本看不懂啊,求好心人帮忙!
展开
 我来答
百度网友21647e5fc
2014-03-10 · TA获得超过709个赞
知道小有建树答主
回答量:149
采纳率:100%
帮助的人:143万
展开全部
10.0f是单精度浮点型的,
100.0d是双精度浮点型的,

双精度浮点型所能表示的数值比单精度更精确,范围也更广。
将双精度浮点型赋值给单精度浮点型必然会发生精度丢失。

你可以
double d = 100.0d;
float f = d;
System.out.println(d);
System.out.println(f);
可以看出来,这两个结果是不一样的。

所有数值范围大的数据类型在转换为数值范围小的数据类型的时候都会发生精度丢失。
wqw0000oooo
2014-03-10 · TA获得超过246个赞
知道小有建树答主
回答量:200
采纳率:100%
帮助的人:163万
展开全部
哥哥是服了你们老师了,double类型的可以直接赋值给float类型的吗?你编译一下看看.反正我用eclipse是编译不过。只能取值范围小的赋值给取值范围大的。如果非要赋值可以加个强制转换。
f=(float)d;结果也是100.0。如果小数点后超过5位,100.777777转换后精度丢失,只能保留前面的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不会游泳_de_鱼
2014-03-11 · TA获得超过109个赞
知道答主
回答量:14
采纳率:0%
帮助的人:7.5万
展开全部
可以换老师了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式