ในที่สุดหลังจากพักไป 3 เดือน ฉันก็กลับมาเรียนหลักสูตรนี้อีกครั้ง ฉันไปพักร้อนเมื่อต้นเดือนมกราคม ฉันจึงตัดสินใจเปลี่ยนไปเรียนสาขาวิชาอื่นๆ เช่น HTML/CSS/Javascript ระหว่างทาง ฉันเริ่มเรียนรู้เทคโนโลยี (เซิร์ฟเล็ตและ JSP) ในเวลานั้น ฉันได้ผ่าน 24 ระดับแล้ว และติดอยู่ในชั้นเรียนภายในเล็กน้อย - ไม่ใช่ว่ามีอะไรไม่ชัดเจน เพียงแต่ว่าความรู้ที่ได้รับจะต้องจัดระบบ เนื่องจากได้รับความรู้มากเกินไปในระยะเวลาอันสั้น ในโหมด "ควบม้าไปทั่วยุโรป" ดังนั้นตอนนี้ฉันตัดสินใจที่จะอ่าน Horstman เล่มแรกอย่างระมัดระวังเพื่อรวบรวมความรู้ของฉันเกี่ยวกับ Java Core และในขณะเดียวกันก็ทำงานที่เหลือจากระดับก่อนหน้าให้สำเร็จจากนั้นจึงก้าวผ่านระดับต่างๆ ฉันเริ่มต้นด้วยปัญหาโบนัสจากระดับ 15 เกี่ยวกับแฟกทอเรียล เมื่อจัดการกับมันแล้ว ฉันจึงตัดสินใจเจาะลึกคลาส BigDecimal ให้ลึกซึ้งยิ่งขึ้น ฉันไม่พบบทความยอดนิยมใด ๆ บนอินเทอร์เน็ต ดังนั้นฉันจึงดูเอกสารและย่อหน้าแรกในนั้นทำให้ฉันคิดทันที บางอย่างในนั้นก็ไม่ได้ชัดเจนทั้งหมด ฉันตัดสินใจที่จะเข้าถึงความจริงและเพื่อให้งานของฉันจะไม่ไร้ประโยชน์ฉันจึงจัดรูปแบบทุกอย่างในรูปแบบของบทความและตอนนี้ฉันกำลังโพสต์ลงในชุมชนเพื่อแลกเปลี่ยนความคิดเห็นและบางทีมันอาจจะ ช่วยเหลือใครบางคน ฉันก็เลยเอาย่อหน้าแรกมาแบ่งเป็นประโยค มีเพียง 5 ประโยคในนั้น ประโยคที่ 3 และ 4 ถูกขีดเส้นใต้และย้ายไปที่ท้ายย่อหน้า (ทำไมฉันถึงทำเช่นนี้ - อ่านต่อ) และได้มีการแปลตามลำดับที่เปลี่ยนแปลงไปนี้ ต้นฉบับย่อหน้าแรก
- ตัวเลขทศนิยมที่มีลายเซ็นที่ไม่เปลี่ยนรูปและมีความแม่นยำตามอำเภอใจ
- BigDecimal ประกอบด้วยค่าจำนวนเต็มที่มีความแม่นยำตามอำเภอใจและค่าขนาดจำนวนเต็ม 32 บิต
- ถ้าเป็นศูนย์หรือบวก สเกลคือจำนวนหลักทางด้านขวาของจุดทศนิยม
- ถ้าเป็นลบ ค่าที่ไม่ได้ปรับขนาดของตัวเลขจะคูณด้วย 10 ยกกำลังของการปฏิเสธของมาตราส่วน
- ดังนั้นค่าของตัวเลขที่แสดงโดย BigDecimal จึงเป็น ( unscaledValue × 10 -scale )
- ตัวเลขทศนิยมที่มีลายเซ็นที่ไม่เปลี่ยนรูปและมีความแม่นยำตามอำเภอใจ
- BigDecimal ประกอบด้วยค่าจำนวนเต็มที่มีความแม่นยำตามอำเภอใจและค่าขนาดจำนวนเต็ม 32 บิต
- ดังนั้นค่าของตัวเลขที่แสดงโดย BigDecimal จึงเป็น ( unscaledValue × 10 -scale )
- ถ้าเป็นศูนย์หรือบวก สเกลคือจำนวนหลักทางด้านขวาของจุดทศนิยม
- ถ้าเป็นลบ ค่าที่ไม่ได้ปรับขนาดของตัวเลขจะคูณด้วย 10 ยกกำลังของการปฏิเสธของมาตราส่วน
- เหล่านี้เป็นเศษส่วนทศนิยม 1ที่ไม่เปลี่ยนรูปซึ่งมีเครื่องหมาย2ซึ่งมีความยาวตามอำเภอใจ34
- หมายเลข BigDecimal ถูกระบุโดยพารามิเตอร์สองตัว คนแรกที่เรียกว่า ค่าที่ไม่ปรับขนาดคือจำนวนเต็มที่มีความยาวไม่จำกัด เมื่อทราบเพียงพารามิเตอร์นี้ จึงไม่สามารถพูดอะไรเกี่ยวกับค่าที่แท้จริงของเลข BigDecimal ได้ ในการดำเนินการนี้ คุณต้องทราบพารามิเตอร์ตัวที่สอง - จำนวนเต็ม 32 บิตที่เรียกว่าสเกล
- จากนั้น ค่าของตัวเลข BigDecimal สามารถคำนวณได้โดยใช้สูตรต่อไปนี้: unscaledValue × 10 -scale
- ถ้า BigDecimal เป็นศูนย์หรือบวก สเกลจะเป็นจำนวนหลักหลังจุดทศนิยม
- หาก BigDecimal เป็นลบ ค่าที่ไม่ได้ปรับขนาดจะถูกคูณด้วย 10 ยกกำลังเท่ากับสเกลด้วยเครื่องหมายลบ
หมายเหตุการแปล 1. เศษส่วน เนื่องจาก “ความแม่นยำตามอำเภอใจ” รวมถึงเหนือสิ่งอื่นใด ว่าเหล่านี้เป็นตัวเลขที่แน่นอนและตัวเลขที่แน่นอนจะต้องมีจุดทศนิยม กล่าวอีกนัยหนึ่ง - เศษส่วน 2. นั่นคือ สามารถเป็นได้ทั้งบวกและลบ 3. ความยาวตามอำเภอใจ เพราะ "ความแม่นยำตามอำเภอใจ" ก็หมายถึงเช่นกัน "จำนวนหลักโดยพลการ" 4. จริงๆ แล้ว ตัวเลข BigDecimal ก็คือตัวเลขจริง แต่กำลังติดตั้ง. การตั้งค่าต่างๆ คุณสามารถใช้ได้ไม่เพียงแต่ในการคำนวณทางวิทยาศาสตร์เท่านั้น และในด้านการเงินด้วยดังนั้น ประโยคที่ขีดเส้นใต้จึงเป็นปัจจัยหลักที่ทำให้เกิดความสับสนสำหรับฉัน จริงๆ แล้วฉันจะลบมันออกจากข้อความ เพราะจริงๆ แล้วมันเป็นเรื่องเกี่ยวกับสิ่งเดียวกัน และยิ่งกว่านั้น พวกมันเกี่ยวกับสิ่งเดียวกันกับที่กล่าวไว้ในประโยคหมายเลข 5 เหล่านั้น. สามประโยคติดต่อกันบอกเพียงว่าค่าที่ไม่ได้มาตราส่วนนั้นคูณด้วย 10 ยกกำลังเท่ากับมาตราส่วนด้วยเครื่องหมายลบ สิ่งนี้น่าสับสนเมื่อคุณอ่านครั้งแรก เพราะเมื่ออ่านประโยคข้อ 3 คุณเข้าใจว่าเนื่องจากมีถ้า หมายความว่าจะมีสิ่งหนึ่งที่นี่ และในประโยคถัดไปมีสิ่งอื่น แต่ไม่เลย ทั้งสองประโยคพูดสิ่งเดียวกัน เพียงใช้คำต่างกัน ประโยคที่สาม (สุดท้ายในย่อหน้า) ติดต่อกันเกี่ยวกับสิ่งเดียวกันน่าจะเป็นเหมือนการควบคุมช็อต ไม่ชัดเจนว่าเหตุใดจึงรวบรวมข้อความในลักษณะที่น่าสับสน เนื่องจากสูตรunscaledValue × 10 -scaleจากประโยคสุดท้ายให้คำจำกัดความของตัวเลขจำนวนมากได้ชัดเจน ไม่คลุมเครือ และครอบคลุมที่สุดเท่าที่จะเป็นไปได้
GO TO FULL VERSION