更新時間:2020-09-22 16:49:08 來源:動力節點 瀏覽2347次
在java語言中,包括了很多種java數據類型,相信大家對這些基礎知識并不陌生,但是有時候這些數據類型的精度不能滿足要求時,就需要用更大或者精度更高的類型,這時候就需要使用到大數值。那么大數值是什么?Java大數值轉換又是怎樣進行的?這篇文章給你答案,一起來學習下面的內容吧!
Java基本數據類型包括四大類八種,那么什么是java大數值呢?大數值就是用來表示“大”的數值,在理論上,大在任意長度和任意精度上,想要多大,就能有多大。這是對于java零基礎的新手朋友們學習java大數值轉換必須先要知道了解的基本概念。
如果基本的整數和浮點數精度不能滿足需求,就可以使用java.math包中的兩個很有用的類:Biglnteger和BigDecimal。這兩個類可以處理任意長度的數值。BigInteger類實現了任意精度的整數運算,Big Decimal實現了任意精度的浮點數運算。
java大數值轉換的方法是什么呢?使用靜態的valueOf方法可以把普通的數值轉換為大數值:
Biglnteger a= Biglnteger.value0f(100);
可惜的是,不能使用人們熟悉的算術運算符(如+和*)處理大數值,而需要使用大數值類中的add和multiply方法。
Biglnteger c = a.add(b); //c =a+ b
Biglnteger d = c.multiply(b.add(Biglnteger.value0f(2))); //d = c*(b + 2)
與C++不同,java沒有提供運算符重載功能,程序員無法重定義+和*運算符,使其應用于Biglnteger類的add和multiply運算。Java語言的設計者確實為字符串的連接重載了+的運算符,但沒有重載其他的運算符,也沒有給java程序員自己重載運算符的權利。
這是一個中獎概率程序:
下面對中獎概率程序加以改進——大數值轉換,使其可以采用大數值進行計算:
假設你被邀請參加抽獎活動,并從490個可能的數值中抽取60個,那么這個程序會得出中獎概率是716 395 843 461 995 557 415 116 222 540 092 933 411 717 612 789 263 493 493 351 013 459 481 104 668 848次中1次。
在第一個未修改的中獎程序中,用于計算的語句是:
lotteryOdds = lotteryOdds*(n - i + 1)/i;
如果大數值轉換后,使用大數值,相應的語句為:
lotteryOdds=lotteryOdds.multiply(Biglnteger.valueOf(n-i+1) ).divide(Biglnteger.valueOf(i));
以上就是今天我們學習的java大數值轉換的內容,并通過修改一個程序的例子,看到了如何采用大數值計算中獎概率,希望大家都能學會java大數值轉換的方法,并在平時多加練習,掌握大數值的內容,以提高自己的java技能。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習