Ⅰ java中double的取值范圍為1.79E308。E308是什麼意思
此說法正確:
這個是科學計數法,E308表示10的308次方.
1.79E308也就是1.79乘以10的308次方
關於位存儲:
比如1位,只能表示0和1,所以1位最大值1
比如2位,0到3,所以最大值3.
關於long:
long共64位其中1位是符號位正負,剩餘63位,
表示最大數 2^63-1 =9223372036854775807
long用途:
十進制就有19位,如果你的訂單低於19位就能使用long來存儲。
問題:
double為什麼表示的整數比long大,都是64位啊
原來double,把64位劃分了幾個 部分,
1、有符號位,指數位,尾數位,通過降低精確度存儲更大的數字。
2、尾數52位存儲具體數字,指數11位和小數點位置有關,符號位1位代表正負
3、如果整數,你的數超過2^52,double就不精確了,開始舍棄精度
4、如果小數,小數點後邊的數超過2^52,double就不精確了,開始舍棄精度
double的應用:
只是提供了小數支持,小數精確到16位左右。也能存儲整數。
但是整數精確只能表示2^52以內的數,超過就不精確了。
所以19位以內的整數可以用long,16以內的小數和整數用double
Ⅱ 設計一個能夠計算三個double:最大值、最小值、平均數的Java類
畢業N年了,多快忘記光了,基本是自己的,要運行的話,可能語法上還得修改下的
public class Work1
{
public static void main(String[] args) {
double da=0,xiao=0,ping=0;
mac(3.56,2.48,5.79)
System.out.println("最大值為:"+da+"最小值:"+xiao+"平均值:"+ping)
}
public static double max(double a,double b,double c)
{
if (a>b){da=a,xiao=b;}else{da=b,xiao=a;}
if(c>da)da=c;
ping=(a+b+c)/3
}
Ⅲ java語言的基本類型中float與double的最大與最小值分別是多少
下面的值都是正負。。。我說的是位數的最大值和最小值
float
最大值:3.4028235E38 =
最小值:1.4E-45 = 0.
double
最大值:1.7976931348623157E308這個值太大了就是
1.7976931348623157這個數小數點往右移308位
最小值:4.9E-324
這個數就是4.9除以10的324次方。。。。
Ⅳ java double最大精度
System.out.println(Double.MIN_VALUE);
System.out.println(Double.MAX_VALUE);
這兩個是double的最小值和最大值~