注册
登录
论坛
搜索
万卷图书
»
Java语言
» 帮看一下,乘法结果不对啊
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
发短消息
加为好友
lukou
当前离线
UID
2809
帖子
2
精华
0
积分
0
阅读权限
10
在线时间
0 小时
注册时间
2011-9-9
最后登录
2011-9-9
新手上路
1
#
打印
字体大小:
t
T
lukou
发表于 2011-9-9 15:30
|
只看该作者
帮看一下,乘法结果不对啊
分析
,
public
,
double
,
class
public class And {
public static void main(String[] args){
int a = 14;
double b= 3.7;
double c= a*b;
System.out.println(c);
}
}
输出结果是51.800000000000004
a=其他数都没问题,只有=14时出现这种情况
谁能帮分析下是何原因?
收藏
分享
评分
回复
引用
订阅
TOP
发短消息
加为好友
fwbook
当前离线
UID
1
帖子
2324
精华
0
积分
0
阅读权限
200
在线时间
1590 小时
注册时间
2009-7-30
最后登录
2024-12-21
管理员
2
#
fwbook
发表于 2011-9-14 08:54
|
只看该作者
1#
lukou
这个因为计算机对浮点数表示存在不精确的问题。这种例子很少能碰到。这次竟然让你碰到了,真是运气。
这实际和计算机对小数的表示有关。由于计算机使用二进制的方式来存储数据。很多时候,十进制的数据无法用二进制的数字精确表示。这个时候,计算机结果就可能存在一定的偏差。只要这种偏差在允许的范围内,就可以了。
例如你这里的运算,误差度不超过百万份之一。所以是可以接受的。
回复
引用
TOP
返回列表