我有两个极限-开始和结束,它们是长值。我需要找到一个步骤,把起点和终点之间的距离分成相等的块。所以这个公式实际上是:
(end - start)/1000
其中1000是块的数量。当start是long.min\u值或接近它时,问题就会出现,而end是long.max\u值。谢谢
35g0bw711#
你需要一个 BigInteger 取而代之的是:
BigInteger
BigInteger bigStart = BigInteger.valueOf(start);BigInteger bigEnd = BigInteger.valueOf(end);BigInteger bigDiv = BigInteger.valueOf(1000);BigInteger step = bigEnd.subtract(bigStart).divide(bigDiv);
BigInteger bigStart = BigInteger.valueOf(start);
BigInteger bigEnd = BigInteger.valueOf(end);
BigInteger bigDiv = BigInteger.valueOf(1000);
BigInteger step = bigEnd.subtract(bigStart).divide(bigDiv);
1条答案
按热度按时间35g0bw711#
你需要一个
BigInteger
取而代之的是: