9.28

YOLO霖發表於2024-09-28

1:在 Java 中,列舉型別是一種特殊的資料型別,用於定義一組有限的常量值。以下是列舉型別的一些基本用法:
一、定義列舉型別
二、使用列舉常量
三、遍歷列舉常量
四、在 switch 語句中使用列舉常量
五、新增屬性和方法

2:在 Java 中,double 型別的數值進行運算得不到 “數學上精確” 的結果,主要有以下幾個原因:
一、二進位制儲存方式
計算機中的數字是以二進位制形式儲存的。而有些十進位制小數無法精確地用二進位制表示。例如,0.1 在十進位制中是一個簡單的小數,但在二進位制中卻無法精確表示,它是一個無限迴圈小數。
double 型別使用 64 位來儲存一個數值,其中一部分用於儲存指數,一部分用於儲存尾數。這種儲存方式決定了它只能近似地表示某些十進位制數值。
二、舍入誤差
在進行數值運算時,計算機可能會對結果進行舍入操作,以適應 double 型別的有限精度。舍入可能會導致結果與數學上的精確值存在微小的差異。
例如,進行多次累加操作時,每次舍入誤差可能會累積起來,最終導致結果與預期的精確值相差較大。
三、有限的精度範圍
double 型別雖然可以表示很大範圍的數值,但它的精度是有限的。對於非常大或非常小的數值,以及需要高精度計算的情況,double 型別可能無法滿足要求。
比如,在進行高精度計算,如金融領域的貨幣計算、科學計算中的高精度數值運算等,double 型別的精度可能不夠,需要使用專門的高精度數值型別,如 java.math.BigDecimal。
為了獲得更精確的數值結果,可以考慮使用專門的高精度數值型別或採用合適的演算法來減少誤差。例如,在需要高精度計算的場景下,可以使用 BigDecimal 類,它可以提供任意精度的十進位制數值運算。

3: 1 x+y=100200 2 300=x+y
對於第一行輸出語句System.out.println("X+Y="+X+Y);,在進行字串拼接時,從左到右進行運算。首先遇到"X+Y="這個字串,然後遇到變數X,由於後面還有一個+號且下一個運算元Y也不是字串,所以這裡將X的值(100)轉換為字串與"X+Y="進行拼接,得到"X+Y=100",接著再遇到Y,又將Y的值(200)轉換為字串與前面的結果拼接,最終輸出"X+Y=100200"。
對於第二行輸出語句System.out.println(X+Y+"=X+Y");,先計算X+Y的值,即 100+200=300,然後將這個整數值轉換為字串與"=X+Y"拼接,最終輸出"300=X+Y"。

相關文章