为了账号安全,请及时绑定邮箱和手机立即绑定

我根据老师的题目写的代码,结果为什么会这样?为什么这么长?


http://img1.sycdn.imooc.com//59548fc8000188a204580219.jpg

http://img1.sycdn.imooc.com//59548fc9000111c203840372.jpg

http://img1.sycdn.imooc.com//59548fc90001375903650376.jpg

http://img1.sycdn.imooc.com//59548fc900016a0903940231.jpg

http://img1.sycdn.imooc.com//59548fc90001bea702720133.jpg

为什么会是28.25999999...8?

正在回答

3 回答

 import java.math.BigDecimal;

        BigDecimal b1 = new BigDecimal(Double.toString(r*r));

        BigDecimal b2 = new BigDecimal(Double.toString(pi));

        s = b1.multiply(b2).doubleValue();

  

java直接进行浮点数运算会丢失精度。要转换成大数进行运算。输入上面的代码试试。

0 回复 有任何疑惑可以回复我~
#1

丶低调丶 提问者

非常感谢!
2017-06-30 回复 有任何疑惑可以回复我~

为什么会出现这样的错误,还有红笔画出来的 JA 是什么意思??http://img1.sycdn.imooc.com//5999857400015a5509610217.jpg

0 回复 有任何疑惑可以回复我~
把s2.DS(3)改成s2.DS(3.0)试试。


0 回复 有任何疑惑可以回复我~
#1

丶低调丶 提问者

http://img1.sycdn.imooc.com//5954d735000114b302290388.jpg​
2017-06-29 回复 有任何疑惑可以回复我~
#2

丶低调丶 提问者

你看看这个图片,是不行的。不是3.0的问题
2017-06-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我根据老师的题目写的代码,结果为什么会这样?为什么这么长?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信