כותב |
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 07 March 2007 בשעה 17:06 | | IP רשוּם
|
|
|
|
ככה ניסיתי להדפיס חיבור של שתי משנים DOUBLE ככה: 0.000000000111111+1 שתי המשצנים הם מסוג DOUBLE והם הכילו את הערכים כמו שתכבתי למעלה ואחרי שהדפסתי את זה (CONSOLE.Writeline()( הוא הדפיס 1 והרי ברור ש 0.000000000111111 זה שונה מ אפס ולכן הוא צריך להדפיס משהו אחר . .. . את זה : 1.000000000111111
השאלה שלי היא האם יש משתנה שיכול להכיל מספרים עשרוניים ארוכים מאוד גם אחרי הנקודה וכאשר אני אדפיס את המספר העשרוני הארוך הוא יודפס בשלמותו ?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 07 March 2007 בשעה 17:37 | | IP רשוּם
|
|
|
|
decimal
והכותרת לא לעניין.
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 07 March 2007 בשעה 17:43 | | IP רשוּם
|
|
|
|
מה הבעיה פה : decimal a = 0.5; זאת השגיאה : Error 1 Literal of type double cannot be implicitly converted to type 'decimal'; use an 'M' suffix to create a literal of this type
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 07 March 2007 בשעה 18:34 | | IP רשוּם
|
|
|
|
כמו שכתוב, אתה צריך לשים m בסוך המספר שהקלדת כדי שיומר אוטומטית ל-decimal.
בכללי אם אתה מקבל שגיאה בנסיול להציב לדוגמא double ב-decimal אתה יכול להמיר ככה:
קוד:
double d = 0.5; decimal a = (decimal)d; |
|
|
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 07 March 2007 בשעה 20:33 | | IP רשוּם
|
|
|
|
תודה עכשיו זה עובד .. . אבל גם DECIMAL זה לא ממש מדוייק הוא החזיר את המספר 1/14641(אחד חלקי ארבע עשרה אלף תשע מאות ארבעים ואחד). בתור 0 . . . . יש משהו אחר ?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 07 March 2007 בשעה 22:31 | | IP רשוּם
|
|
|
|
זה בגלל שאתה לא יודע c#.
אם אתה כותב את זה בצורה מספרית, בלי m, הקומפיילר מתייחס לזה כמו לחילות של מספרים שלמים (פשוט מגלל שכתבת בלי נקודה עשרונית, ויש הנחה שהתכוונת ל-int)
קוד:
decimal d = 1m / 14641m;
// 0.000068301345536507069189263 |
|
|
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 07 March 2007 בשעה 23:02 | | IP רשוּם
|
|
|
|
אם אני רוצה להוסיף את ה m כמו שאתה עשית גם ב1 וגם ב 14641 אבל אצלי הם משתהים נגיד משה כזה :
decimal a = x/y
a,x,y הם כולם decimal אבל אם אני כותב m אחרי משתנה זה לא מבין את זה ניסיתי גם decimal a = (decimal)x/y
וגם זה לא הצליח. . . איך צריך לכתוב את זה ?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 08 March 2007 בשעה 17:20 | | IP רשוּם
|
|
|
|
הקוד הבא אמור לעבוד...
קוד:
decimal x = 1; decimal y = 14641; decimal a = x / y; Console.WriteLine(a); |
|
|
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 08 March 2007 בשעה 18:16 | | IP רשוּם
|
|
|
|
נראה לי שבכול זאת המספר שאני מנסה להכניס גדול מדי . . . זה המספר הכיג דול שאפשר להכניס 9999999999999999999 ? (19 ספרות)
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 08 March 2007 בשעה 20:45 | | IP רשוּם
|
|
|
|
אוך...נו...תקרא בתיעוד של MSDN...
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|