回答
当我说疯了,我的意思是像8192位整数和浮点数。
这真的没那么疯狂。这不会像你的机器或其他任何东西那样对内存造成损害。
对于整数使用BigInteger
,对于浮点值使用BigDecimal
。我不相信“大二进制浮点数”的类型。
正如一种数字的例子你看:
import java.math.BigInteger;
class Test {
public static void main(String[] args) {
byte[] bytes = new byte[8192/8];
bytes[0] = 127;
System.out.println(new BigInteger(bytes));
}
}
输出:
541113332904944621257027340160900091917693549115318562261104546273807066972024025361193585096486923349385062726999774256581849977197274906557009492831443201105551171691244178403919717984227039278443359980180226761679803089497594605997671485724763907145598953406431990173442500426575664262787949112583386253705131668104786750182412791680855944865715259696410188367886612037506345419830856183841501926493918229094077315951142102521296377217539380498798690167426476561663037383738887233213887519273211725579880674800387600568470737270104457912998752875078530446871686526249410822677146900086180880813247518266724528982615032997773901413876848296339184483653166555279106371868396901081861539095911471442610063951293879120365878948439891423650415705034797749122786629924812156703812528640850454060722116295309871801737746764999201088806655284597015419746259510509499349561721654707610989789654471438735169020704030761573632885829361191231553677205472467298253617875576235292510432481272402684906949137107846984996664405910584729193117175984160182199443928924561776902598406361920212049977569423122238936613720193835991801078589862197148943845799227101449150630448578266698756989391702826257605172788293230378218508822387001316270205970944491970492276551254070011941344182057711282913107165296221553726157902456370601394371723685760200355834698473938397945899759397125036210760680478306465830666897406840404024476493134998816143107896676743539769317406617364687861711800984142442948514215249454927820436180492589816736874897449912514943129230209940739231794049768749574548833516764431351090987436249707697734825718908151379544029650456181452943969453122168249071093299640857962065914461325933612617848859243931833842937043427913950964027234614991099243281546044057820429916880334769902849242692796234674560857035410231544279377588197273344847249842671676677537861236399982441213013590542156075455205317955214656111885489459439151729409777140396834780673618790448115444670040022974650543938394323796233646015156947899183947183401173446094248041971411220471893676853128455398177922600837292255766818543666617068690067956364492828867704414948545668364232596008593050588673137731481867410830313713128431917941710625939870646270407030930197645725794246194984570796611923844444224132832526549988639036039442164277785045016465216623043972724482648160510104973400460750404533502159516766838971279926484762092518157058058042524433149400681767325045143455597943916743044982093381632
我说这是一个疯狂的大数字:) –
@MarkoTopolnik如果这是“疯狂的大”,那么你会打电话给一个有那么多数字的号码?或者,怎么样,用这么多数字取一个数字,并将其提高到自己的力量?或者,拿_that_数字和...... IMO“疯狂的大数字”是疯狂的数学家们必须发明新的符号以便他们甚至可以谈论它们的数字。 (http://en.wikipedia.org/wiki/Conway_chained_arrow_notation) –
BigDecimal不是浮点表示。 BigDecimal大部分是固定的,但是在某些操作中程序可以明确要求与给定操作数具有不同比例的结果。如果浮点类似于具有自动变速器,并且BigInteger就像引擎直接连接到车轮,那么BigDecimal就像是有一个换档杆。 –
是的,这是可能的。利用BigDecimal
类
例如:
BigDecimal decOne = new BigDecimal("334");
BigDecimal decTwo = new BigDecimal("33");
BigDecimal result = decOne.subtract(decTwo);
然后简单地打印出来。
BigInteger
(对于整数)和BigDecimal
(对于确切的浮点数)是您所需要的。它们只受可用内存的限制。
- 1. 疯狂计算器
- 2. 用UITextField疯狂
- 3. XPath来在疯狂层次
- 4. 试图记住疯狂的java数组诡计
- 5. 使用scaleType疯狂
- 6. JODA疯狂?
- 7. Clickonce疯狂
- 8. php date_diff疯狂
- 9. 与CKEditor疯狂
- 10. SharpGL疯狂
- 11. Javascript,DOM疯狂...
- 12. PHP疯狂bug
- 13. JQuery UI的疯狂
- 14. Python和Tkinter:函数疯狂
- 15. PHP数组指针疯狂
- 16. Clojure - 用大数来计算
- 17. 疯狂VS设计师错误
- 18. gcc疯狂的优化级别(-O3)不够疯狂吗?
- 19. 试图计算所有的素数,但我的输出是疯狂的
- 20. Android蓝牙启用疯狂
- 21. 疯狂asp.net错误
- 22. GridBagLayout变得疯狂
- 23. MySQL查询疯狂?
- 24. DateTime2让我疯狂
- 25. Python疯狂易变
- 26. Iframe在Tab疯狂!
- 27. PHP 5.4 ForEach疯狂?
- 28. glsl - =疯狂优化
- 29. InnerHtml让我疯狂
- 30. CSS疯狂梯度
[Java浮点高精度库](http://stackoverflow.com/questions/277309/java-floating-point-high-precision-library) –
在Google中搜索,您会发现BigInteger! –