java浮点运算问题 35
为什么java用浮点数进行运算时,结果回偏离正确值啊,一个本来等于0.01的运算,在java上运算会显示成0.009999999998,为什么会这样?要怎么解决呢?我是新...
为什么java用浮点数进行运算时,结果回偏离正确值啊,一个本来等于0.01的运算,在java上运算会显示成0.009999999998,为什么会这样?要怎么解决呢?我是新手,请大家讲的详细点,谢谢
展开
4个回答
展开全部
这么跟你说吧,对于浮点运算,跟处理器的运算机制相关,与高级语言无关。计算机处理的是数字信号,是离散的,是对模拟信号就行采样量化的。也就是说计算机运算的结果只能无限接近自然值,精度由位数决定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为浮点数在计算机里用 尾数,阶码和基数表示。。。尾数被限定在0和1之间,但是小数转二进制(乘2取整)存在一个无穷的问题。所以计算机就只能算到尾数规定的23位。。。。而尾数决定精度,所以就是这样了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原因就跟上面两个说的一样,如果要非常精准的计算就用BigDecimal吧,如果不要求太精准,可以用四舍五入的方式,百度一下,遍地都是
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是java的一个bug
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询