JavaRush /จาวาบล็อก /Random-TH /เจาะลึกอีกเล็กน้อยเกี่ยวกับตัวเลข BigDecimal
grishin
ระดับ
Харьков

เจาะลึกอีกเล็กน้อยเกี่ยวกับตัวเลข BigDecimal

เผยแพร่ในกลุ่ม
ในที่สุดหลังจากพักไป 3 เดือน ฉันก็กลับมาเรียนหลักสูตรนี้อีกครั้ง ฉันไปพักร้อนเมื่อต้นเดือนมกราคม ฉันจึงตัดสินใจเปลี่ยนไปเรียนสาขาวิชาอื่นๆ เช่น HTML/CSS/Javascript ระหว่างทาง ฉันเริ่มเรียนรู้เทคโนโลยี (เซิร์ฟเล็ตและ 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 ได้ ในการดำเนินการนี้ คุณต้องทราบพารามิเตอร์ตัวที่สอง - จำนวนเต็ม 32 บิตที่เรียกว่าสเกล
  3. จากนั้น ค่าของตัวเลข BigDecimal สามารถคำนวณได้โดยใช้สูตรต่อไปนี้: unscaledValue × 10 -scale
  4. ถ้า BigDecimal เป็นศูนย์หรือบวก สเกลจะเป็นจำนวนหลักหลังจุดทศนิยม
  5. หาก BigDecimal เป็นลบ ค่าที่ไม่ได้ปรับขนาดจะถูกคูณด้วย 10 ยกกำลังเท่ากับสเกลด้วยเครื่องหมายลบ
หมายเหตุการแปล
1. เศษส่วน เนื่องจาก “ความแม่นยำตามอำเภอใจ” รวมถึงเหนือสิ่งอื่นใด
   ว่าเหล่านี้เป็นตัวเลขที่แน่นอนและตัวเลขที่แน่นอนจะต้องมีจุดทศนิยม
   กล่าวอีกนัยหนึ่ง - เศษส่วน
2. นั่นคือ สามารถเป็นได้ทั้งบวกและลบ
3. ความยาวตามอำเภอใจ เพราะ "ความแม่นยำตามอำเภอใจ" ก็หมายถึงเช่นกัน
   "จำนวนหลักโดยพลการ"
4. จริงๆ แล้ว ตัวเลข BigDecimal ก็คือตัวเลขจริง แต่กำลังติดตั้ง.
   การตั้งค่าต่างๆ คุณสามารถใช้ได้ไม่เพียงแต่ในการคำนวณทางวิทยาศาสตร์เท่านั้น
   และในด้านการเงินด้วย
ดังนั้น ประโยคที่ขีดเส้นใต้จึงเป็นปัจจัยหลักที่ทำให้เกิดความสับสนสำหรับฉัน จริงๆ แล้วฉันจะลบมันออกจากข้อความ เพราะจริงๆ แล้วมันเป็นเรื่องเกี่ยวกับสิ่งเดียวกัน และยิ่งกว่านั้น พวกมันเกี่ยวกับสิ่งเดียวกันกับที่กล่าวไว้ในประโยคหมายเลข 5 เหล่านั้น. สามประโยคติดต่อกันบอกเพียงว่าค่าที่ไม่ได้มาตราส่วนนั้นคูณด้วย 10 ยกกำลังเท่ากับมาตราส่วนด้วยเครื่องหมายลบ สิ่งนี้น่าสับสนเมื่อคุณอ่านครั้งแรก เพราะเมื่ออ่านประโยคข้อ 3 คุณเข้าใจว่าเนื่องจากมีถ้า หมายความว่าจะมีสิ่งหนึ่งที่นี่ และในประโยคถัดไปมีสิ่งอื่น แต่ไม่เลย ทั้งสองประโยคพูดสิ่งเดียวกัน เพียงใช้คำต่างกัน ประโยคที่สาม (สุดท้ายในย่อหน้า) ติดต่อกันเกี่ยวกับสิ่งเดียวกันน่าจะเป็นเหมือนการควบคุมช็อต ไม่ชัดเจนว่าเหตุใดจึงรวบรวมข้อความในลักษณะที่น่าสับสน เนื่องจากสูตรunscaledValue × 10 -scaleจากประโยคสุดท้ายให้คำจำกัดความของตัวเลขจำนวนมากได้ชัดเจน ไม่คลุมเครือ และครอบคลุมที่สุดเท่าที่จะเป็นไปได้
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION