כיצד להפריד כפול לחלקים שלמים ועשרוניים

1. סקירה כללית

במדריך זה נחקור שיטות שונות להפרדת חלקים שלמים ועשרוניים מסוגי נקודה צפה ב- Java, כלומר לָצוּף ו לְהַכפִּיל.

2. סוגיות עם סוגי נקודות צפות

נתחיל בלהסתכל על שבר פשוט, ועל דרך נאיבית לבצע את ההפרדה באמצעות ליהוק:

כפול כפול מספר = 24.04; int intPart = (int) doubleNumber; System.out.println ("מספר כפול:" + מספר כפול); System.out.println ("חלק שלם:" + intPart); System.out.println ("חלק עשרוני:" + (doubleNumber - intPart));

כאשר אנו מנסים להריץ את הקוד לעיל, הנה מה שאנו מקבלים:

מספר כפול: 24.04 חלק שלם: חלק עשרוני: 0.03999999999999915

בניגוד לציפיותינו, הפלט אינו מדפיס את החלק העשרוני כהלכה. לפיכך, מספרי הנקודות הצפות אינם מתאימים לחישובים שבהם לא ניתן לסבול שגיאות עגול.

3. גישה ראשונה: פיצול ה- חוּט

קודם כל, בואו להמיר את המספר העשרוני ל- a חוּט שווה ערך. ואז נוכל לפצל את חוּט באינדקס הנקודה העשרונית.

בואו נבין זאת בדוגמה:

כפול כפול מספר = 24.04; String doubleAsString = String.valueOf (doubleNumber); int indexOfDecimal = doubleAsString.indexOf ("."); System.out.println ("מספר כפול:" + מספר כפול); System.out.println ("חלק שלם:" + doubleAsString.substring (0, indexOfDecimal)); System.out.println ("חלק עשרוני:" + doubleAsString.substring (indexOfDecimal)); 

פלט הקוד שלעיל הוא:

מספר כפול: 24.04 חלק שלם: 24 עשרוני: .04

התפוקה היא בדיוק מה שאנחנו מצפים. אבל הבעיה כאן היא המגבלה של השימוש במחרוזת - מה שאומר שלא נוכל לבצע כעת פעולות חשבון אחרות.

4. גישה שנייה: שימוש BigDecimal

ה BigDecimal class ב- Java מספק למשתמשים בו שליטה מלאה על התנהגות עיגול. מחלקה זו מספקת פעולות לעריכת חשבון, מניפולציה בקנה מידה, עיגול, השוואה, גיבוב ועיצוב המרה.

בואו נשתמש BigDecimal כדי לקבל את החלק השלם והעשרוני של מספר נקודה צפה:

כפול כפול מספר = 24.04; BigDecimal bigDecimal = BigDecimal חדש (String.valueOf (doubleNumber)); int intragual = bigDecimal.intValue (); System.out.println ("מספר כפול:" + bigDecimal.toPlainString ()); System.out.println ("חלק שלם:" + intValue); System.out.println ("חלק עשרוני:" + bigDecimal.subtract (BigDecimal חדש (intValue)). ToPlainString ());

התפוקה תהיה:

מספר כפול: 24.04 חלק שלם: 24 עשרוני: 0.04

כפי שניתן לראות לעיל, התפוקה היא כצפוי. אנו יכולים גם לבצע פעולות חשבון בעזרת שיטות המפורטות ב BigDecimal מעמד.

5. מסקנה

במאמר זה דנו בשיטות שונות להפרדת חלקים שלמים ועשרוניים מסוגי נקודה צפה. דנו גם ביתרונות השימוש BigDecimal לחישובי נקודה צפה.

כמו כן, המדריך המפורט שלנו בנושא BigDecimal ו- BigInteger ב- Java דן במאפיינים ותרחישים שימושיים יותר של שתי הכיתות.

לבסוף, קוד המקור השלם עבור הדרכה זו זמין ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found