當前位置:首頁 » 編程語言 » java比較double

java比較double

發布時間: 2022-08-05 17:13:37

A. java語言中 如何判斷 一個 double形變數a 是否是整數

lic static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入double類型的數字:");
double d = sc.nextDouble();
if((int)d == d){ //強制轉換後會丟失精度,如果丟失精度的數和原數相等,說明就是整數
System.out.println("輸入的數字是整數");
}else{
System.out.println("輸入的數字不是整數");
}

B. Java中Double的比較

Double沒有的,double有 Double是對象,看兩個對象是否值相同,調用 equals方法
這也是解決double精度比較的方法。另外還有一種方法,你可以用寫一個 double成員屬性,然後在eclipse中重寫equals方法,你會看到他是怎麼處理兩個double值是否相同的 sun公司用的是Double.doubleToLongBits(要比較的double值) != Double.doubleToLongBits(另一個double值) 這種方式

C. java里怎麼判斷一個變數,是否是int型,或者是否是double型

你可以用一個字元串來保存你的輸入,然後你可以將輸入利用String類庫中的函數進行轉換,或者利用contains()函數看,是否還有小數點。

System.out.println("please input the ten strings:");

Scanner sc = new Scanner(System.in);

String number = sc.nextLine();

if(number.contains(".")){

//說明是一個小數

double d = Double.valueOf(s);

}

else{

//

int i = Integer.valueOf(s);

}

D. java double 比較運算會精度丟失嗎

publicBigDecimal(doubleval)
thedouble'sbinary
floating-pointvalue.
smallestvaluesuchthat(10scale×val)isaninteger.
Notes:
Parameters:
val-doublevaluetobeconvertedto
BigDecimal.
Throws:
NumberFormatException-ifvalisinfiniteorNaN.
.Onemight
(0.1)inJavacreatesa
.1(anunscaledvalueof1,
withascaleof1),butitisactuallyequalto
0..Thisisbecause0.1
(or,forthatmatter,as
).Thus,thevaluethatisbeingpassed
.1,appearances
notwithstanding.
TheStringconstructor,ontheotherhand,isperfectly
predictable:writingnewBigDecimal("0.1")createsa
.1,asonewould
expect.Therefore,isone.

BigDecimal,
conversion;
doubletoaStringusingtheDouble.toString(double)(String)constructor.Togetthatresult,usethestaticvalueOf(double)method.

這是java.math.BigDecimal類的其中一個構造器的介紹。好好看,格式好像亂了。。傳圖一直傳不上去,不造是為啥。。。。

E. java double數據類型運算問題

使用Java,double 進行運算時,經常出現精度丟失的問題,總是在一個正確的結果左右偏0.0000**1。
特別在實際項目中,通過一個公式校驗該值是否大於0,如果大於0我們會做一件事情,小於0我們又處理其他事情。
這樣的情況通過double計算出來的結果去和0比較大小,尤其是有小數點的時候,經常會因為精度丟失而導致程序處理流程出錯。
所以一般對double類型進行運算時,做好對結果進行處理,然後拿這個值去做其他事情。

目前總結如下:

/**

* 對double數據進行取精度.

* @param value double數據.

* @param scale 精度位數(保留的小數位數).

* @param roundingMode 精度取值方式.

* @return 精度計算後的數據.

*/

public static double round(double value, int scale,

int roundingMode) {

BigDecimal bd = new BigDecimal(value);

bd = bd.setScale(scale, roundingMode);

double d = bd.doubleValue();

bd = null;

return d;

}

/**
* double 相加
* @param d1
* @param d2
* @return
*/
public double sum(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.add(bd2).doubleValue();
}

/**
* double 相減
* @param d1
* @param d2
* @return
*/
public double sub(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.subtract(bd2).doubleValue();
}

/**
* double 乘法
* @param d1
* @param d2
* @return
*/
public double mul(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.multiply(bd2).doubleValue();
}

/**
* double 除法
* @param d1
* @param d2
* @param scale 四捨五入 小數點位數
* @return
*/
public double div(double d1,double d2,int scale){
// 當然在此之前,你要判斷分母是否為0,

// 為0你可以根據實際需求做相應的處理

BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.divide

(bd2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}

這樣,計算double類型的數據計算問題就可以處理了。
另外補充一下 JavaScript 四捨五入的方法:
小數點問題

Math.round(totalAmount*100)/100 (保留 2 位)

function formatFloat(src, pos)
{
return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
}

F. java中兩個Double型數據可以用(>,<,==,>=,<=)進行比較嗎 請詳細說明

可以啊,數值類型的都可以這樣比較。如果是字元串就不行了,需要一些函數了

G. java里double類和double的區分 是不是在於一個是大寫一個是小寫

不是就大小寫的區別問題。
Double 是類 double是基礎數據類型。Double類型是double的包裝類.
Double 和double之間的相互轉化稱為自動拆箱和自動裝箱。
如果從對象角度理解,那麼Double就是對象,double就是數值。
Double對象.doubleValue()才是Double對象的數值。

H. 在JAVA中怎麼比較Double類型數據的大小

你如果是要普通比較直接用數學符號即可,指的在其jvm允許的范圍內如果,你是要很准確的精度比較運算,由於精度問題,可能會有誤差,建議使用BigDecimal類型!

//普通比較
Doubleobj1=newDouble("0.001");
Doubleobj2=newDouble("0.0011");
obj1.compareTo(obj2);

//精度准確比較
doublea=obj1;
doubleb=obj2;
BigDecimaldata1=newBigDecimal(a);
BigDecimaldata2=newBigDecimal(b);
data1.compareTo(data2);

//該方法兩種類都有
publicintcompareTo(BigDecimalval)
/*將此BigDecimal與指定的BigDecimal比較。根據此方法,值相等但具有不同標度的兩個BigDecimal對象(如,2.0和2.00)被認為是相等的。相對六個boolean比較運算符(<,==,>,>=,!=,<=)中每一個運算符的各個方法,優先提供此方法。
*參數:val-將此BigDecimal與之比較的BigDecimal。
*返回:當此BigDecimal在數字上小於、等於或大於val時,返回-1、0或1。
*/

I. 請問java中,Double類型和double有什麼不同能否轉換

Double 是類 double是基礎數據類型。Double類型是double的包裝類,在JDK1.5以後,二者可以直接相互賦值,稱為自動拆箱和自動裝箱。如果是這樣,可以用Double中的方法,將包裝類轉為基本數據類型。

可以轉換的。

J. java中double與Integer直接比較大小是否可以

當然可以直接比較了,比較中會把integer的轉型為double再比較大小的

熱點內容
歐文5的配置是什麼 發布:2025-01-22 21:30:23 瀏覽:108
日誌存儲資料庫 發布:2025-01-22 21:30:07 瀏覽:474
gulp上傳cdn 發布:2025-01-22 21:27:34 瀏覽:203
emule文件夾 發布:2025-01-22 21:23:23 瀏覽:980
s7e什麼時候推送安卓7 發布:2025-01-22 21:20:59 瀏覽:203
狐狸的清白腳本分析 發布:2025-01-22 21:19:59 瀏覽:182
如何破解仿射密碼 發布:2025-01-22 21:13:53 瀏覽:80
百度視頻存儲 發布:2025-01-22 21:13:11 瀏覽:168
發吧傳媒源碼 發布:2025-01-22 21:07:52 瀏覽:953
shell腳本調用sql腳本 發布:2025-01-22 20:53:51 瀏覽:428