JavaRush /Java Blog /Random-TW /更深入了解 BigDecimal 數字
grishin
等級 27
Харьков

更深入了解 BigDecimal 數字

在 Random-TW 群組發布
最後,經過三個月的休息後,我又回來參加課程了。一月初我休假了。然後我決定轉而學習其他學科,例如 HTML/CSS/Javascript。在這個過程中,我開始學習科技(servlet 和 JSP)。那時我已經完成了24級,對內部課程有點卡住了——不是有什麼不清楚,只是所學到的知識必須系統化,因為太多是短時間內學到的。在“馳騁歐洲”模式中。所以,現在我決定仔細閱讀Horstman第一卷,鞏固我對Java Core的知識,同時完成前面層級的剩餘任務,然後繼續進行層級。我從第 15 級關於階乘的獎金問題開始。處理完這個問題後,我決定深入研究 BigDecimal 類。我在網路上沒有找到任何特別受歡迎的文章,所以我查看了文檔,其中的第一段立即讓我思考,不知為何,其中的所有內容都不是很清楚。我決定要查個水落石出,為了不讓自己的工作白費,我把所有的東西都整理成文章的形式,現在發到社區里大家交流一下,也許可以對某人有幫助。所以我把第一段分成句子。裡面只有5句話。第 3 和第 4 句加了下劃線,並移至段落末尾(為什麼我這樣做 - 請繼續閱讀)。並按照這個改變的順序進行了相應的翻譯。 原文第一段
  1. 不可變的、任意精確度的符號十進制數。
  2. BigDecimal 由任意精確度整數未縮放值和 32 位元整數小數位數組成。
  3. 如果為零或正數,則小數位數是小數點右邊的位數。
  4. 如果為負,則該數字的未縮放值乘以 10 的縮放負次方。
  5. 因此,BigDecimal 表示的數字值為 ( unscaledValue × 10 -scale )。
句子順序重新排列的原文
  1. 不可變的、任意精確度的符號十進制數。
  2. BigDecimal 由任意精確度整數未縮放值和 32 位元整數小數位數組成。
  3. 因此,BigDecimal 表示的數字值為 ( unscaledValue × 10 -scale )。
  4. 如果為零或正數,則小數位數是小數點右邊的位數。
  5. 如果為負,則該數字的未縮放值乘以 10 的縮放負次方。
擴展翻譯(翻譯中的每個點對應於原文中的一個點)
  1. 這些是不可變的小數1十進制數,符號為2,任意長度34
  2. BigDecimal 數字由兩個參數指定。其中第一個,即所謂的。未縮放值是無限長度的整數。僅知道這個參數,就無法說出有關 BigDecimal 數字的實際值的任何資訊。為此,您必須知道第二個參數 - 一個稱為“scale”的 32 位元整數。
  3. 然後可以使用以下公式計算 BigDecimal 數的值: unscaledValue × 10 -scale
  4. 如果 BigDecimal 為零或正數,則小數位數為小數點後的位數。
  5. 如果 BigDecimal 為負數,則其未縮放的值將乘以 10 的冪,並帶有負號。
翻譯註釋
1. 小數,因為「任意精度」除其他外包括:
   這些是精確的數字,精確的數字必須有小數點,
   換句話說 - 分數。
2. 那就是 可以是正的也可以是負的。
3. 任意長度,因為「任意精度」也意味著
   “任意數量的數字。”
4. 事實上,BigDecimal 數字是實數。但安裝
   不同的設置,您不僅可以在科學計算中使用它們,
   以及金融領域。
所以,劃線的句子對我來說是主要的困惑因素——我實際上會把它們從文本中刪除,因為事實上它們是關於同一件事的,而且,它們與第5 句中所說的事情是關於同一件事的。那些。連續三個句子只表示未縮放的值乘以 10 的冪,等於帶有負號的縮放。當你第一次讀到它的時候,這會讓人感到困惑,因為當你讀第3句時,你明白,既然有if,那就意味著這裡會有一件事,而下一句中會有別的東西。但不,這兩個句子說的是同一件事,只是用詞不同。好吧,關於同一件事的連續第三句話(段落中的最後一個)可能就像一個控制鏡頭。目前還不清楚為什麼文本會以如此混亂的方式編寫,因為最後一句話中的 公式unscaledValue × 10 -scale盡可能清晰、明確和全面地給出了大數的定義。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION