我对Java很新,但已经用它完成了一些Android编程。
现在我想用
来总结一个系列for (int i=1; i<=n; i++)
{
sum = sum + (float) 1/(i*i);
}
无限级数和是有限的,但超过大约50,000个左右,总和给出了&#34;无穷大&#34;。只要我不接受太多的条款,该系列看起来就像预期的那样融合。
这里的数据结构是否存在问题,或者我缺少什么。
答案 0 :(得分:6)
一个问题是D:/
会受到整数溢出的影响。
特别是,当org.joda.time
(即65536),DateTime
Period
溢出为0.而i * i
的结果在Java中为i = 2^16
。
如果您将i*i = 2^32
声明为1f / 0
,您将更接近您的期望。如果你想要更好的精度,你可以使用双倍。