永发信息网

public static void main(String[] arg){ System.out.println(5*3.14*2); }

答案:2  悬赏:20  手机版
解决时间 2021-01-19 10:28
public static void main(String[] arg){ System.out.println(5*3.14*2); }
最佳答案
因为二进制不能表示浮点数。浮点数在计算机中按照IEEE754的规范进行的,你可以看看规范。计算机表示的浮点数的范围是:±1.7976931348623157 x 10^308和 ±5 x 10^-324之间。也就是说你写:
double x = 0;
其实存储在x中的数字并不是0,而是5x10^-324这个数,这个数已经和0很接近了,但是不是绝对的0。这个是任何语言都会有的问题,因为现在目前绝大多数编程语言对于浮点数采用的都是IEEE754规范。也就是说C语言,JavaScript等等计算你上面的例子和Java计算的结果一样。
所以浮点数在计算机中本身就是具有误差的,这个没办法的。只能根据你的实际编程需求来决定对误差是进行处理还是不进行处理。
全部回答
java中的数值运算由一个自动升值的问题
5 和 2 为int型
而3.14默认为double型 运算后你没有定义结果的类型 jvm会自动的 将结果变为double型
所以就变成了你所得到的结果
至于后面的那个2 是因为二进制不能表示浮点数。浮点数在计算机中按照IEEE754的规范进行的,你可以看看规范。计算机表示的浮点数的范围是:±1.7976931348623157 x 10^308和 ±5 x 10^-324之间。这本来就不是一个精确的表示,不过这么小的误差在常规编程中是允许的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我国农村网民数量是在哪一年首次突破5000万人
java适合做桌面客户端吗
星耀的任务宝好用不?
每次生气都提到离婚,我都是老伤心了,为啥呢
那你能不能做出来?
私房钱的由来
用光良的歌曲(恋爱)做广播剧ed,需要填词,
长安悦V3的后尾灯多少钱一个
想在贵阳买门窗,请问哪里有比较好的门窗?
请问疝带怎么制作?
Wi-Fi 是什么 意思?
朱子顺属猴男三月十五生一生命运如何
x-0.85x=3的解
邻家女孩是什么样子的
梦见孩子坐锅灶上玩
推荐资讯
为什么开学偏偏在9月1日?
有关带美字的诗
相宜本草红石榴系列适合什么年龄?急求告知。
1970年属什么?多少岁?
方框加70=70减方框方框里面应该填几
求无界访问最新版
乡村生活的变化一千字以下600字以上
我茶楼马上就装修好了就想取个带水字的茶楼名
怎么木人回答哟
定格动画都用什么软件制作
康乐县水电局投诉电话我们没有水吃?没人管吗
函数f(x)=2x-1的零点所在区间为 要详细过程
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?