jdo*_*ods 1 java math for-loop
我是Java的新手,但是已经用它做了一些Android编程.
现在我想用一个系列来总结
for (int i=1; i<=n; i++)
{
sum = sum + (float) 1/(i*i);
}
Run Code Online (Sandbox Code Playgroud)
无限级数和是有限的,但超过大约50,000个左右,总和就是"无穷大".只要我不放过太多的条款,这个系列看起来就像预期的那样趋同.
这里的数据结构是否存在问题,或者我缺少什么.
一个问题是i * i
受整数溢出的影响.
特别是当i = 2^16
(即65536)i*i = 2^32
溢出为0.而结果1f / 0
是+Infinity
在Java中.
如果你声明i
的float
,你会得到更接近你所期望的.如果你想要更好的精度,你可以使用双倍.