import java.math.BigDecimal;
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供汨羅企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、HTML5建站、小程序制作等業(yè)務(wù)。10年已為汨羅眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
import java.util.Scanner;
public class Cat {
public static void main(String[] args) {
System.out.print("Please input 2 numbers:");
String[] input = new Scanner(System.in).nextLine().trim().split("\\s+");
BigDecimal num1 = new BigDecimal(input[0]);
int num2 = Integer.parseInt(input[1]);
BigDecimal mul = new BigDecimal("1.0");
for(int i = 1; i = num2; i++){
mul = mul.multiply(num1);
}
System.out.println(mul.toString());
}
}
------------------testing
Please input 2 numbers:95.123 12
548815620517731830194541.8990253434157159735359672218698527210
java中輸出冪函數(shù)可以:
直接輸出比如?long mi = 2 (n-1)。
也可以跑循環(huán)計算比如 int n = 3;
long mi = 1L;
for(int i = 1; i = n; i++){
mi *= 2;
}
System.out.println(mi)。
import
java.util.Scanner;
/*
*
用java編寫程序計算x的n次冪
*
*/
public
class
Test40003
{
public
static
void
main(String[]
args)
{
int
repeat;//定義要冪次
//int
i,
n;
double
x,
mypow=1;
Scanner
in=new
Scanner(System.in);//從控制臺輸入數(shù)字,比如
2
1.5,
//前面是整數(shù),后面是要做冪次運(yùn)算的數(shù),中間用空格隔開
repeat=in.nextInt();//獲取輸入的冪次
x=in.nextDouble();//獲取要進(jìn)行冪次運(yùn)算的數(shù)
System.out.println("現(xiàn)在要做"+x+"的"+repeat+"次冪運(yùn)算!");
for(int
ri=1;
ri=repeat;
ri++){
mypow
=
mypow*x;
}
System.out.println(x+"的"+repeat+"次冪運(yùn)算的結(jié)果是:"+mypow);
}
}
超過long的大小的時候要用到?
java.math.BigInteger; 這個類
這個類本身并不是數(shù)學(xué)計算,而是字符拼接模擬數(shù)學(xué)計算的顯示效果。
計算的結(jié)果可以以字符串的形式輸出。
代碼部分:(main方法中)
BigInteger?bi?=new?BigInteger("7894561230");
for(int?i=0;i5;i++){?//5次方?理論上可以100次?但是會計算N久
bi?=?bi.multiply(bi);//multiply?表示乘法?add?+?,sub?-,?div?是除
}
System.out.println(bi);?//輸出到屏幕看下結(jié)果
java中通常進(jìn)行數(shù)學(xué)運(yùn)算的東西都在Math類中,求函數(shù)的冪次方就是Math類中的pow方法:public static double pow(double?a,?double?b),?返回第一個參數(shù)的第二個參數(shù)次冪的值。
例如求2的3次方,代碼如下:
public class test {
public static void main(String[] args) {
double a= Math.pow(2, 3);
}
}
運(yùn)行結(jié)果為8
擴(kuò)展資料:
Math 類包含用于執(zhí)行基本數(shù)學(xué)運(yùn)算的方法,如初等指數(shù)、對數(shù)、平方根和三角函數(shù)。
與 StrictMath 類的某些數(shù)學(xué)方法不同,并非 Math 類所有等價函數(shù)的實(shí)現(xiàn)都定義為返回逐位相同的結(jié)果。此類在不需要嚴(yán)格重復(fù)的地方可以得到更好的執(zhí)行。
默認(rèn)情況下,很多 Math 方法僅調(diào)用 StrictMath 中的等價方法來完成它們的實(shí)現(xiàn)。建議代碼生成器使用特定于平臺的本機(jī)庫或者微處理器指令(可用時)來提供 Math 方法更高性能的實(shí)現(xiàn)。這種更高性能的實(shí)現(xiàn)仍然必須遵守 Math 的規(guī)范。
實(shí)現(xiàn)規(guī)范的質(zhì)量涉及到兩種屬性,即返回結(jié)果的準(zhǔn)確性和方法的單調(diào)性。浮點(diǎn) Math 方法的準(zhǔn)確性根據(jù) ulp(units in the last place,最后一位的進(jìn)退位)來衡量。對于給定的浮點(diǎn)格式,特定實(shí)數(shù)值的 ulp 是包括該數(shù)值的兩個浮點(diǎn)值的差。
當(dāng)作為一個整體而不是針對具體參數(shù)討論方法的準(zhǔn)確性時,引入的 ulp 數(shù)用于任何參數(shù)最差情況下的誤差。
如果一個方法的誤差總是小于 0.5 ulp,那么該方法始終返回最接近準(zhǔn)確結(jié)果的浮點(diǎn)數(shù);這種方法就是正確舍入。一個正確舍入的方法通常能得到最佳的浮點(diǎn)近似值;然而,對于許多浮點(diǎn)方法,進(jìn)行正確舍入有些不切實(shí)際。
相反,對于Math 類,某些方法允許誤差在 1 或 2 ulp 的范圍內(nèi)。非正式地,對于 1 ulp的誤差范圍,當(dāng)準(zhǔn)確結(jié)果是可表示的數(shù)值時,應(yīng)該按照計算結(jié)果返回準(zhǔn)確結(jié)果;否則,返回包括準(zhǔn)確結(jié)果的兩個浮點(diǎn)值中的一個。對于值很大的準(zhǔn)確結(jié)果,括號的一端可以是無窮大。
除了個別參數(shù)的準(zhǔn)確性之外,維護(hù)不同參數(shù)的方法之間的正確關(guān)系也很重要。
因此,大多數(shù)誤差大于 0.5 ulp 的方法都要求是半單調(diào)的:只要數(shù)學(xué)函數(shù)是非遞減的,浮點(diǎn)近似值就是非遞減的;同樣,只要數(shù)學(xué)函數(shù)是非遞增的,浮點(diǎn)近似值就是非遞增的。并非所有準(zhǔn)確性為 1 ulp 的近似值都能自動滿足單調(diào)性要求。
參考資料:
1)可以直接使用java常用類中的Math類,比如求2的三次方(2^3) double num1= Math.pow(2,3);(不過此時獲取的數(shù)據(jù)為double類型值為 8.0); 2)如果想要int類型的數(shù)據(jù)需要強(qiáng)制類型轉(zhuǎn)換 int num = (int)Math.pow(2,3);(此時的數(shù)據(jù)為 8);